在PHP中加载基类+扩展类的正确方法

时间:2013-07-15 16:06:41

标签: php oop object

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

基类:

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

扩展课程:

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

虽然总是加载基类,但根据情况加载其他类。

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

2 个答案:

答案 0 :(得分:0)

您可以使用文件顶部的autoloader

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

或者您可以在子类'constuctor中使用父类'constuctor并手动导入php文件:

require_once(your_file.php);

class DEF extends ABC {

    function __construct() {
        parent::__construct();
    }
}

答案 1 :(得分:0)

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

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

如果他们进入不同的文件夹,只需实施自己的方案

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