在PHP.net上,__autoload的描述为“尝试加载未定义的类”。但是,它指出您可以定义函数“以启用类自动加载”。所以,假设我这样定义函数:
function __autoload($className) {
if (file_exists(ROOTDIRECTORY . $className . '.class.php')) {
require_once(ROOTDIRECTORY . $className . '.class.php');
}
}__autoload是否仍然只加载尚未定义的类,或者上面编写的函数内部是否会覆盖此功能?
发布于 2012-12-01 06:25:43
是的,它只会在尚未包含的类中触发。这意味着你可以用一个更简单的require()替换require_once(),这样可以减少后台处理的开销。
此外,还应该向函数添加一个else { return false; },以便在无法找到类文件时触发相应的错误。
发布于 2012-12-01 05:53:24
仅当函数class_exists返回false时,才会调用此函数。
https://stackoverflow.com/questions/13653678
复制相似问题