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(命名空间)进行使用。
分类:
PHP
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具