在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开始的时候, 如果想在一个php文件中使用其它文件的类或方法, 需要通过include/require方法将文件包含进来. 这种方法的缺点也很明显:
autoload为了解决这个问题, 在PHP5中引入了自动加载的概念, 通过 __autoload 函数来实现, 如下:
将这个函数定义在文件中, 当遇到未引入的类时, 会调用此函数进行引入, 看起来貌似很好, 我们只需要将此函数定义在也给PHP文件中, 以后我们的每个文件就只需要引入这一个自动加载文件就可以了, 看起来完事大吉. 但通过使用, 这种方式也存在很多问题:
很明显, 问题就出在了, 这是一个全局函数, 只能够定义一次, spl_autoload那么如何解决这个问题呢? PHP引入了一个扩展库, 可以定义多个自动加载函数, 在查找的时候会依次调用定义好的自动加载函数进行加载, 有如下方法:
有了它, 我们就可以定义多个自动加载函数了. 下面是一个例子: test01.php
test02.php
run.php
运行run.php, 报错:
打印传入的 $classname, 发现是: test01\test 也就是说, 我们使用的时候可以将命名空间与路径相对应, 关于这个好像还有一个标准, 具体记不清了. 这样一对应, 有没有感觉和java中的包有些一样了, 反正我是觉得挺像. composer好了, 现在通过 composer来管理第三方库, 它将自动加载都做好了, 只要引入他的 autoload.php 文件就可以了. composer提供了几种类型的自动加载 1.psr-4 大概就是我们上面说的路径和命名空间对应的形式 2. classmap 保存各个类与文件的映射map 等等吧, 没有具体研究, 不过大体是对自动加载的封装, 很方便. 简单总结一下, 才疏学浅.. |
2022-08-18
2022-08-15
2022-08-17
2022-11-06
2022-08-17
请发表评论