我在脚本中使用 __autoload 来根据需要包含类。我的脚本使用类名中的提示来查找包含它的文件。如果它以模型结尾,它在模型目录中,控制器在控制器目录中,等等。我开始实现接口,所以需要调整我的自动加载器。
理想情况下,当创建对象时,自动加载器将确定对象的文件名、存储位置并包含该文件。然后它会询问该类它实现了哪些接口,然后自动包含这些文件。
就像是
function __autoload($classname){
echo $classname;
include ("classes/$classname.php");
$interfaces = class_implements($classname,FALSE);
foreach($interfaces as $name){
if(!class_exists($name,FALSE)){
include("interfaces/".$name."inter.php");
}
}
}
除非我这样做,否则我会收到错误
无法在第 11 行的 W:\xampp\htdocs\test\auto.php 中重新声明 __autoload()(之前在 W:\xampp\htdocs\test\auto.php:5 中声明)
在 __autoload() 中不可能做到这一点吗?我是否应该继续依靠命名约定来区分对象类型和存储位置?