標籤:http autoload 推薦 XML 尾碼 print 自動調用 載入 ring
在設計物件導向的程式開發時,通常為每個類的定義都單獨建立一個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物件導向 – 自動載入類