PHP 5的自动加载是否效率低下?

fed*_*o-t 4 php class include autoload

手动包含PHP类时,可以在当前脚本运行时执行,对吧?然后你可以决定,如果条件匹配你加载它,如果不匹配你没有.像这样:

if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
    include '../../../Whatever/SanitizeUserInput.class.php';
    SanitizeUserInput::sanitize($_POST['someFieldName']);
}
Run Code Online (Sandbox Code Playgroud)

但是,假设我在此课程中使用了自动加载功能.它会在开头有效加载还是仅在使用时加载?

我的意思是,我是否应该__autoload只在我100%确定我将在任何脚本(例如数据库连接,会话管理等)中使用的类中添加该函数?

谢谢

Tim*_*mur 6

只有在尝试访问所需的类时才会调用自动加载.最好用spl_autoload_register()而不是__autoload

文档:

您可以定义一个__autoload()函数,如果您尝试使用尚未定义的类/接口,则会自动调用该函数.

spl_autoload_register()为自动加载类提供了更灵活的替代方法.因此,不鼓励使用__autoload(),将来可能会弃用或删除.