定义" __ autoload" Functiton

时间:2012-11-30 21:48:26

标签: php autoload

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

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

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

2 个答案:

答案 0 :(得分:3)

是的,它只会触发尚未包含的类。这意味着您可以使用更简单的require_once()替换require(),这样可以减少PHP在后台处理的开销。

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

答案 1 :(得分:1)

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