PHP中的自动加载函数spl_autoload_register以及__autoload

__autoload:

__autoload — 尝试加载未定义的类(该魔术方法已自 PHP 7.2.0 起被废弃,并自 PHP 8.0.0 起被移除。 强烈建议不要依赖本函数。)由于该魔术方法已被spl_autoload_register替代就不过多赘述,功能参考spl_autoload_register函数。

 

spl_autoload_register:

PHP: spl_autoload_register - Manual 当实例化一个类的时候如果找不到该类则会执行这个方法。

b.php

复制代码
<?php

spl_autoload_register(function ($class) {
    require_once   $class . '.php';
});

class b {

    public function b2(){
        $a =  new a;
        $a->a2();
        echo 'b';
    }
}


$c = new b();
$c->b2();
复制代码

该文件中实例化了a使用的就是spl_autoload_register自动加载了a类,当找不到a类的时候则会运行spl_autoload_register方法里面的require引入a文件。

a.php

<?php

class a {
    public function a2()
    {
        echo 'a';
    }
}

 

 

总结:spl_autoload_register以及__autoload都是当要实例化的类不存在的时候自动调用的函数,只不过魔法函数__autoload在PHP7.2版本之后就被废弃了。spl_autoload_register函数是框架的核心函数,可以实现所谓的惰性加载,通常配合namespace(命名空间)进行使用。

 

posted @   少吃饭多读书  阅读(252)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示