|
クラスのオートローディングオブジェクト指向アプリケーションを作成する開発者の多くは、 クラス定義毎に一つのPHPソースファイルを作成します。 最大の問題は、各スクリプトの先頭に、必要な読み込みを行う長いリストを 記述する必要があることです(各クラスについて一つ)。 spl_autoload_register 関数を使うと、 任意の数のオートローダーを登録でき、 クラスやインターフェイスが定義されていなくても自動的に読み込めるようになります。 オートローダーを登録すれば、PHPがエラーで止まる前にクラスをロードする最後の チャンスが与えられます。 クラスに類似した言語構造は、同じやり方でオートロードできます。 これには、クラス、インターフェイス、トレイト、列挙型が含まれます。 警告
PHP 8.0.0 より前のバージョンでは、 __autoload 関数でもクラスやインターフェイスのオートロードが可能でした。 しかし、この関数は spl_autoload_register 関数に比べると柔軟性という点で劣っています。 そのため、__autoload 関数は PHP 7.2.0 で推奨されなくなり、 PHP 8.0.0 で削除されました。
例1 オートロードの例
この例は、 クラス
例2 オートロードの別の例
この例は、インターフェイス
参考
|