課程
/后端開發
/PHP
/從零開始打造自己的PHP框架
自動加載那個判斷是否已經加載是不是不必要的,因為如果已經加載過是不會觸發load方法的吧?
2016-08-24
源自:從零開始打造自己的PHP框架
正在回答
主要是為了防止,跨方法和夸類的情況下發生重復引入的情況,畢竟作用域不一樣。比如 indexCtrl中的index方法使用了 new /model,在baseCtrl中再使用new /model是會重新出發load方法的。
茫海 提問者
李虎頭 回復 茫海 提問者
茫海 提問者 回復 李虎頭
/**關于那個autoload的問題,由于回復那里有字數限制,我就另外開一個問題來回復您了*/ <?php /** *?index.php */ spl_autoload_register("load"); $test?=?new?Test();//第一次使用Test類,輸出:“開始load:Test....” Third::test();//第二次,在另外一個類的方法里面使用Test類,并不會輸出“開始load:Test....” test();//第三次在函數中使用Test,并不會輸出“開始load:Test....” function?load($class) { ????echo?"開始load:".$class."....<br/>"; ????require?$class.".php"; } function?test() { ????new?Test(); }
<?php /** *?Test.php */ class?Test { ???? }
<?php /** *?Third.p */ class?Third { ????public?static?function?test() ????{ ????????$test?=?new?Test(); ????} }
執行結果如下圖所示:
最終只輸出了一次load:Test,也就是說只有在第一次使用Test的時候才會自動調用load方法,后面再次使用Test并不會執行load了
舉報
和我一起開發一套屬于自己的PHP框架,自己開發的才是最好用的
1 回答為什么run方法還需要include文件呢,此時不是已經觸發了spl_autoload_register自動加載了嗎?
3 回答關于自動加載
1 回答在加載控制器時為什么不使用自動加載功能?
2 回答自動加載 為什么不用 autoload 為什么要寫得那么復雜?
1 回答關于自動加載對PHP效率的影響
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-08-25
主要是為了防止,跨方法和夸類的情況下發生重復引入的情況,畢竟作用域不一樣。比如 indexCtrl中的index方法使用了 new /model,在baseCtrl中再使用new /model是會重新出發load方法的。
2016-08-26
執行結果如下圖所示:
最終只輸出了一次load:Test,也就是說只有在第一次使用Test的時候才會自動調用load方法,后面再次使用Test并不會執行load了