遇到一个函数理解了很久
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() 函数了
如果有说的不对的地方,还望指正