PHP物件導向 – 自動載入類

來源:互聯網
上載者:User

標籤: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物件導向 – 自動載入類

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.