1

在 PHP.net 上,__autoload 的描述为“尝试加载未定义的类”。但是,它声明您可以定义“启用类自动加载”功能。所以,假设我这样定义函数:

function __autoload($className) {
    if (file_exists(ROOTDIRECTORY . $className . '.class.php')) {
        require_once(ROOTDIRECTORY . $className . '.class.php');
    }
}

__autoload 是否仍然只加载尚未定义的类,或者上面编写的函数的内容是否会覆盖此功能?

4

2 回答 2

3

是的,它只会触发尚未包含的类。这意味着您可以require_once()用更简单的方法替换require()它,从而减少 PHP 必须在后台执行的开销处理量。

此外,您应该else { return false; }在函数中添加一个,以便 PHP 在找不到类文件时触发相应的错误。

于 2012-11-30T22:25:42.737 回答
1

class_exists仅当函数返回时才会调用此函数false

于 2012-11-30T21:53:24.250 回答