在调用class_exists时,无论如何都知道自动装带器是否成功?
答案 0 :(得分:0)
在自动加载器结束时检查是否存在类。
function __autoload($className) {
//Your code here
if(class_exists('You_Class', false)) {
//succeed
} else {
//failure
}
}
答案 1 :(得分:0)
您必须检查class_exists
两次。
我的工作代码是:
$autoload = spl_autoload_functions() ? true : false; // spl_autoload_functions can return array, empty array or false, but we need boolean
$should_include = $autoload ? class_exists($className, true) : true;
if($should_include && !class_exists($className, false)){ // make sure the class does not exist before including
if(is_readable($fileName)){
include_once($fileName);
} else {
throw new Exception('Could not include ' . $className);
}
}
尝试在退回之前使用先前定义的自动加载器。