在某個類中想要呼叫其它的類,一般情況下是require或者include某個檔案。但是這樣的情況會出現就是不便於管理,類太多那不是就有很多的require嗎,而且每次執行都要載入這些檔案,會白白占用記憶體,其次當刪除了某個類檔案時,也要對應的修改include或者require語句。
//一般情況
require("cat.class.php");
require("dog.class.php");
$cat = new cat;
$dog = new dog;
$cat->scream();
$dog->scream();
使用__autoload()魔術方法來代替include或者require語句,則可以避免大量的**冗餘,也可以提高執行效率。
//使用__autoload()魔術方法
function __autoload($class_name)//其實這樣也不好,以為require被寫死了
$cat = new cat;
$dog = new dog;
$cat->scream();
$dog->scream();
__autoload()的缺點:
1.乙個檔案中只允許有乙個__autoload(),當引入的專案中有其他__autoload()時,則會發生衝突。
2. 當專案中的類根據不同的用處放在不同的資料夾中,此時要分別呼叫對應的類,會十分困難。
此方法還有乙個改進版本就是將所有需要用到的類和路徑存入另乙個檔案中,如下:
!!!暫時搞不來
spl_autoload_register()
該函式可以註冊任意數量的自動載入器,當使用未被定義的類和介面時自動去載入。
php類基礎(5)之自動載入類
測試類,要求類名與檔名一致 class test class 首先通過require之類的包含函式測試類是否可以正常使用。接著使用 autoload 和spl autoload register 分別進行自動載入類 require test class.php autoload 當我們引入乙個不存在...
類的自動載入
require humanmodel.php lisi new humanmodel lisi t 如上,沒有require時,報錯手動require進來 如果 比較大,model模擬較多 如humanmodel usermodel 等等 1.這麼多的model類,我用誰,就include requ...
自動載入類
思考 有哪些類檔案需要載入?回答 一共有三種 1.核心框架類 已經確定好了 2.控制器類 可以增加 3.模型類 可以增加 對於所有的類,可以分成兩個方面來考慮 1.對於已經確定好了的類,最好採用最簡潔的方式進行直接載入 2.對於不確定的可以增加類,需要通過類名的規律,完成其位置的判斷,然後再進行自動...