我正在做一个个人项目,这是我第一次使用OOP。我的项目有一个基类,它由其他人扩展(基本设置)。澄清一下,这就是我正在做的:
基本类别:
class ABC {
function __construct() {
...
}
}
扩展类:
class DEF extends ABC {
function __construct() {
...
}
}
虽然基类总是被加载的,但其他类是根据情况加载的。
我的问题是,动态加载正确的扩展类的正确方法是什么?我应该"导入"这两个php吗?我应该强制转换基类($x=new ABC()),然后从基类加载另一个类吗?
您可以在文件顶部使用自动加载器:
function __autoload($className) {
require_once $className . '.php';
}
或者,您可以在子类constuctor中使用父类constractor并手动导入php文件:
require_once(your_file.php);
class DEF extends ABC {
function __construct() {
parent::__construct();
}
}
如果将所有类放在同一个文件夹中,并将其命名为[class].php,则可以将以下内容放在脚本的顶部,它们都将神奇地加载
<?php
function __autoload($class_name) {
require_once $class_name . '.php';
}
如果它们进入不同的文件夹,只需实现您自己的方案
参考:http://php.net/manual/en/language.oop5.autoload.php