5 类的自动加载
在某个类中想要调用其它的类,一般情况下是require或者include某个文件。但是这样的情况会出现就是不便于管理,类太多那不是就有很多的require吗,而且每次执行都要加载这些文件,会白白占用内存,其次当删除了某个类文件时,也要对应的修改include或者require语句。
//一般情况
require("Cat.class.php"); require("Dog.class.php"); $cat = new Cat; $dog = new Dog; $cat->scream(); $dog->scream(); 使用__autoload()魔术方法来代替include或者require语句,则可以避免大量的代码冗余,也可以提高执行效率。 //使用__autoload()魔术方法 function __autoload($class_name){ require($class_name.'.class.php'); }//其实这样也不好,以为require被写死了 $cat = new Cat; $dog = new Dog; $cat->scream(); $dog->scream();
__autoload()的缺点:
1.一个文件中只允许有一个__autoload(),当引入的项目中有其他__autoload()时,则会发生冲突。
2. 当项目中的类根据不同的用处放在不同的文件夹中,此时要分别调用对应的类,会十分困难。
此方法还有一个改进版本就是将所有需要用到的类和路径存入另一个文件中,如下:
!!!暂时搞不来
spl_autoload_register()
该函数可以注册任意数量的自动加载器,当使用未被定义的类和接口时自动去加载。
本文作者:xiaoovo
本文链接:https://www.cnblogs.com/xiaoovo/p/15968132.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步