ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

5 类的自动加载

2022-03-05 15:34:41  阅读:166  来源: 互联网

标签:__ require autoload cat 自动 new class 加载


在某个类中想要调用其它的类,一般情况下是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()

该函数可以注册任意数量的自动加载器,当使用未被定义的类和接口时自动去加载。

标签:__,require,autoload,cat,自动,new,class,加载
来源: https://www.cnblogs.com/stonffeliu/p/15968132.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有