自動加載物件

很多開發者寫面向對象的套用程式時對每個類的定義建立一個 PHP 源檔案。一個很大的煩惱是不得不在每個腳本(每個類一個檔案)開頭寫一個長長的包括檔案清單。

在 PHP 5 中,不再需要這樣了。可以定義一個 __autoload 函數,它會在試圖使用尚未被定義的類時自動呼叫。通過呼叫此函數,腳本引擎在 PHP 出錯失敗前有了最後一個機會加載所需的類。

注: 在 __autoload 函數中拋出的異常不能被 catch 語句塊捕捉並導致致命錯誤。

例子 19-5. Autoload 例子

本例嘗試分別從 MyClass1.phpMyClass2.php 檔案中加載 MyClass1MyClass2 類。

<?php
function __autoload($class_name) {
    require_once 
$class_name '.php';
}

$obj  = new MyClass1();
$obj2 = new MyClass2();
?>