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方法已经执行完了为什么还能实现自动加载
1 回答

临摹微笑
TA贡献1982条经验 获得超2个赞
_autoload 常用在自动加载类库处理 也就是网上说的 这种方法,根据类名,找出类文件,然后require_one spl_autoload_register() __autoload的最大缺陷是无法有多个autoload方法 好了, 想下下面的这个情景,你的项目引用了别人的一个项目,你的项目中有一个__autoload,别人的项目也有一个__autoload,这样两个__autoload就冲突了。解决的办法就是修改__autoload成为一个,这无疑是非常繁琐的。 因此我们急需使用一个autoload调用堆栈,这样spl的autoload系列函数就出现了。你可以使用spl_autoload_register注册多个自定义的autoload函数 如果你的PHP版本大于5.1的话,你就可以使用spl_autoload
- 1 回答
- 0 关注
- 711 浏览
添加回答
举报
0/150
提交
取消