所以这是我的自动加载 -
function __autoload($classname){
include $classname.'.php';
}
我也试过使用DOCROOT以防万一......
function __autoload($classname){
define('DOCROOT', dirname(__FILE__));
include DOCROOT.'/'.$classname.'.php';
}
但是当遇到PatentAssignment类时,它说它找不到类的定义......
然而,如果我有一个
include 'PatentAssignment.php';
在将使用它的类的构造函数中,一切正常。不确定发生了什么。事实上,它甚至没有调用自动加载,只是对于该怎么做而感到困惑。
答案 0 :(得分:1)
__autoload()
不应该是类的成员方法 - 它应该是全局命名空间中的独立函数。
答案 1 :(得分:1)
构造函数是什么样的(包含include)? 将自动加载代码放在所有类定义之前,最好在初始化php文件的顶部。 尝试调试:
function __autoload($classname) {
echo 'looking for ' . $classname . ' in ' . getcwd();
include $classname.'.php';
}
获取当前的工作目录。您的所有文件都在同一个文件夹中吗?
改为使用spl_autoload:
spl_autoload_register(function ($class) {
include($class . '.php');
});
答案 2 :(得分:0)
试试这个:
spl_autoload_register(function($class) {
//your function here
return class_exists($class, false);
});