前言
在PHP里,有两种方法可以实现类的自动加载,第一个是定义__autoload
函数,第二个是使用spl_autoload_register
函数。
// 加载类时,PHP会自动调用此函数,无需手动调用
function __autoload($class) {
// 自动加载逻辑
}
spl_autoload_register(function($class) {
// 自动加载逻辑
});
区别
__autoload
只能有一个自动加载逻辑,而spl_autoload_register
可以有多个,通过注册多个自动加载函数,PHP会按照注册的先后顺序依次调用,直到成功加载到类为止。因此它能避免你的应用程序和其它第三方库的自动加载逻辑产生冲突__autoload
从PHP 7.2.0开始已被标记为deprecated(过时),后面会被废弃- 若同时使用了
spl_autoload_register
和__autoload
,__autoload
会失效
结论
优先使用spl_autoload_register
来实现类的自动加载