在設計物件導向的程式開發時,通常為每個類別的定義單獨建立一個PHP原始檔。當你嘗試使用未定義的類別時,PHP會報一個致命錯誤。可以用include或require包含一個類別所在的來源文件,畢竟你知道要用到那個類別。如果一個頁面需要使用多個類,就必須在腳本頁面開頭編寫一個長長的包含文件的列表,將本頁面需要的類全部包含進來。這樣處理不僅繁瑣,而且容易出錯。
PHP提供了類別的自動載入功能,這可以節省程式的時間。當你嘗試使用一個PHP沒有組織到的類別時,它會尋找一個autoload()的全域函數(不是在類別中宣告的函數)。如果存在這個函數,PHP會用一個參數來呼叫它,參數即類別的名稱。
在下例中說明了autoload()是如何使用的,它假設當前目錄下每個文件對應一個類,當腳本嘗試來創建一個類User的實例時,PHP會自動執行autoload()函數。腳本假設user.class.php中定義有User類,不管呼叫時是大寫還是小寫,PHP將傳回名稱的小寫。所以在做專案時,在組織定義類別的檔案名稱時,需要依照一定的規則,一定要以類別名為中心,也可以加上統一的前綴或後綴形成的檔案名,例如classname.class.php、 xxx_classname.php、classname_xxx.php或是classname.php等,建議類別檔案的命名使用「classname.class.php」格式。
<?php/* 声明一个自动加载类的魔术方法autoload() */function autoload($className){ //在方法中使用include包含类所在的文件 include(strtolower($className) . ".class.php"); }$obj = new User(); //User类不存在,则自动调用autoload()函数,将类名“User”作为参数传入$obj2 = new shop(); ?>
以上是PHP物件導向-實作自動載入類別__autoload() 的程式碼案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!