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();//執(zhí)行c方法時(shí)auto方法已經(jīng)執(zhí)行完了為什么還能實(shí)現(xiàn)自動加載
1 回答
臨摹微笑
TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
_autoload 常用在自動加載類庫處理 也就是網(wǎng)上說的 這種方法,根據(jù)類名,找出類文件,然后require_one spl_autoload_register() __autoload的最大缺陷是無法有多個(gè)autoload方法 好了, 想下下面的這個(gè)情景,你的項(xiàng)目引用了別人的一個(gè)項(xiàng)目,你的項(xiàng)目中有一個(gè)__autoload,別人的項(xiàng)目也有一個(gè)__autoload,這樣兩個(gè)__autoload就沖突了。解決的辦法就是修改__autoload成為一個(gè),這無疑是非常繁瑣的。 因此我們急需使用一個(gè)autoload調(diào)用堆棧,這樣spl的autoload系列函數(shù)就出現(xiàn)了。你可以使用spl_autoload_register注冊多個(gè)自定義的autoload函數(shù) 如果你的PHP版本大于5.1的話,你就可以使用spl_autoload
- 1 回答
- 0 關(guān)注
- 741 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
