__autoload 和sp_autoload_register

一般框架中是肯定会有自动加载类的的机制的,才能__autoload()和sp_autoload_register()的区别在哪里呢?

官网解释:spl_autoload_register — 注册给定的函数作为 __autoload 的实现,其实就是可以有多个__autoload函数 ,通过 一个队列来存储它们。

boolspl_autoload_register ( [callable]$autoload_function [, bool $throw =true [,bool $prepend = false ]]] )

autoload_function

欲注册的自动装载函数。如果没有提供任何参数,则自动注册 autoload 的默认实现函数spl_autoload()。

throw

此参数设置了 autoload_function
无法成功注册时, spl_autoload_register()是否抛出异常。

prepend

如果是 true,spl_autoload_register() 会添加函数到队列之首,而不是队列尾部。

有了这个函数,在框架中引入一些第三方类时,如果对方也用相应的__autoload函数时,可以解决相应的冲突

你可能感兴趣的:(__autoload 和sp_autoload_register)