オブジェクトのオートローディング

オブジェクト指向アプリケーションを作成する開発者の多くは、 クラス定義毎に一つのPHPソースファイルを作成します。 最大の問題は、各スクリプトの先頭に、必要な読み込みを行う長いリストを 記述する必要があることです(各クラスについて一つ)。

PHP 5では、これはもう不用です。 未定義のクラスを使用しようとした時に 自動的にコールされる __autoload 関数を定義することができます。 この関数をコールすることにより、 スクリプトエンジンは、PHPがエラーで止まる前にクラスをロードする最後の チャンスを与えます。

注意: __autoload 関数の内部でスローされた例外は、 catch ブロックでキャッチすることが できず、致命的なエラーとなります。

例 19-6. オートロードの例

この例は、 クラス MyClass1 および MyClass2 をそれぞれ MyClass1.php および MyClass2.php からロードします。

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

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