关于 PHP spl_autoload_register() 函数的记录

遇到一个函数理解了很久

spl_autoload_register() 函数

要理解这个函数,那么需要先理解 PHP 的 __autoload() 自动加载函数

当一个 PHP 文件中需要使用到某个类,而这个类又没有加载的时候,PHP 就会自动调用 __autoload() 函数 __autoload() 函数带有一个传参 $classname 会将类名传进来

这时候我们可以通过一些自定义的判断逻辑根据类名找到类所在的路径,然后就是将对应的类文件 include/require 加载进来啦


现在应该了解 __autoload() 函数的作用了,那么我们来讲一下 spl_autoload_register() 函数的作用

现在 A 程序猿写了一套代码用了一个 __autoload() 函数, B 程序猿又写了一套代码用了一个 __autoload() 函数

然后两套代码需要合并成一个系统

但是兄弟,咱一个系统只能有一个 __autoload() 函数啊~!

这时可以将两个 __autoload() 的代码合并成一个,然而这样的做法好像会让 __autoload() 函数看起来很臃肿很不爽总想怎么重写

莫慌,现在使用 spl_autoload_register() 函数就对了,将 A 程序猿的 __autoload() 函数换个名字 loadA()、B 程序猿的 __autoload() 函数换个名字 loadB(),再使用 spl_autoload_register( array( 'loadA', 'loadB' ) )。这样就可以将这两个自动加载函数注册到一个函数队列里面去

嗯,所以我们需要多条 __autoload() 的时候就可以使用 spl_autoload_register() 函数了

如果有说的不对的地方,还望指正

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这...
    四月不见阅读 4,722评论 0 0
  • 一 预定义接口 1.1 遍历 Traversable(遍历)接口 检测一个类是否可以被foreach遍历,该接口不...
    coderhu阅读 4,990评论 0 0
  • 自动加载函数--__autoload() 在Yii中有spl_autoload_register() 这个自动加载...
    洞房花猪阅读 4,952评论 0 1
  • 课程准备知识 熟悉和了解数据结构的节本概念 熟悉PHP代码的编写 熟悉面向对象的概念 什么是 SPL SPL的基...
    followyounger1阅读 3,975评论 0 3
  • 自是年二月初三始记生活琐事 至今已逾七个月多 其中多为小女灵芝之成长点滴 并无行文思路 亦无生花妙笔 思之则书之 ...
    张耘菩阅读 2,166评论 8 11

友情链接更多精彩内容