php 類的自動載入

來源:互聯網
上載者:User

標籤:註冊   div   net   .net   error   cli   異常類   使用   row   

在編寫物件導向(OOP) 程式時,很多開發人員為每個類建立一個 PHP 檔案。 這會帶來一個煩惱:每個指令碼的開頭,都需要包含(include)一個長長的列表(每個類都有個檔案)。

在 PHP 5 中,已經不再需要這樣了。 spl_autoload_register() 函數可以註冊任意數量的自動載入器,當使用尚未被定義的類(class)和介面(interface)時自動去載入。通過註冊自動載入器,指令碼引擎在 PHP 出錯失敗前有了最後一個機會載入所需的類。

Tip

儘管 __autoload() 函數也能自動載入類和介面,但更建議使用 spl_autoload_register() 函數。 spl_autoload_register() 提供了一種更加靈活的方式來實作類別的自動載入(同一個應用中,可以支援任意數量的載入器,比如第三方庫中的)。因此,不再建議使用 __autoload() 函數,在以後的版本中它可能被棄用。

Note:

在 PHP 5.3 之前,__autoload 函數拋出的異常不能被 catch 語句塊捕獲並會導致一個致命錯誤(Fatal Error)。 自 PHP 5.3 起,能夠 thrown 自訂的異常(Exception),隨後自訂異常類即可使用。 __autoload 函數可以遞迴的自動載入自訂異常類。

 

Note:

自動載入不可用於 PHP 的 CLI 互動模式。

 

Note:

如果類名比如被用於 call_user_func(),則它可能包含一些危險的字元,比如 ../。 建議您在這樣的函數中不要使用使用者的輸入,起碼需要在 __autoload() 時驗證下輸入。

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.