关于php的spl_autoload_register作用域的问题?

class B{
public function __construct(){
$this->auto();
$this->c();
}

public function auto(){
spl_autoload_register(function($name){
echo $name;//输出A
});
}

public function c(){
new A();
}
}
new B();
//执行c方法时auto方法已经执行完了为什么还能实现自动加载

心有法竹
浏览 713回答 1
1回答

临摹微笑

_autoload 常用在自动加载类库处理 也就是网上说的 这种方法,根据类名,找出类文件,然后require_one spl_autoload_register() __autoload的最大缺陷是无法有多个autoload方法 好了, 想下下面的这个情景,你的项目引用了别人的一个项目,你的项目中有一个__autoload,别人的项目也有一个__autoload,这样两个__autoload就冲突了。解决的办法就是修改__autoload成为一个,这无疑是非常繁琐的。 因此我们急需使用一个autoload调用堆栈,这样spl的autoload系列函数就出现了。你可以使用spl_autoload_register注册多个自定义的autoload函数 如果你的PHP版本大于5.1的话,你就可以使用spl_autoload
打开App,查看更多内容
随时随地看视频慕课网APP