0

我正在做一个个人项目,这是我第一次使用 OOP。我的项目有一个基类,由其他人扩展(基本设置)。为了澄清,这就是我正在做的事情:

基类:

class ABC {
  function __construct() {
    ...
  }
}

扩展类:

class DEF extends ABC {
  function __construct() {
    ...
  }
}

虽然始终加载基类,但根据情况加载其他类。

我的问题是,动态加载正确的扩展类的正确方法是什么?我应该“导入”两个 php 吗?我应该转换基类($x = new ABC()),然后从基类加载另一个类吗?

4

2 回答 2

0

您可以在文件顶部使用自动加载器:

function __autoload($className) {
    require_once $className . '.php';
}

或者您可以在子类的构造函数中使用父类的构造函数并手动导入 php 文件:

require_once(your_file.php);

class DEF extends ABC {

    function __construct() {
        parent::__construct();
    }
}
于 2013-07-15T16:08:59.747 回答
0

如果您将所有类放在同一个文件夹中,并将它们命名为 [class].php,您可以将以下内容放在脚本的顶部,它们都会神奇地加载

<?php
  function __autoload($class_name) {
      require_once $class_name . '.php';
  }

如果它们进入不同的文件夹,只需实现您自己的方案

参考: http: //php.net/manual/en/language.oop5.autoload.php

于 2013-07-15T16:11:13.413 回答