この拡張モジュールの用途は、オブジェクトのプロパティへのアクセスと メソッドのコールのオーバーロードを可能にすることです。この拡張モ ジュールで定義されている関数は1つだけです。この関数、 overload() はこの機能を有効にするクラスの名前を 引数とします。名前を指定されたクラスでこの機能を使用したい場合は以 下の適当なメソッドを定義する必要があります。これらは、 __get(), __set(), __call() で、それぞれ、プロパティを取得、設定、 メソッドをコールするためのものです。オーバーロード機能は選択可能で す。これらのハンドラ関数の中でオーバーロードは無効とすることができ、 この場合、オブジェクトのプロパティに普通にアクセスできます。 このモジュールは、 実験的 なものです。これは、これらの関数の動作、関数名は、このドキュメントに書かれて事項と同様に告知なく将来的なPHPのリリースで変更される可能性があります。注意を喚起するとともに、このモジュールは使用者のリスクで使用して下さい。 これらの関数は、標準モジュールの一部と して利用可能であり、常に使用できます。 以下の関数を使用するには、オプション --enable-overload を指定してPHPをコ ンパイル必要があります。この拡張モジュールは、 PHP 4.3.0ではデフォルトで有効になっています。 --disable--overload により オーバーロードのサポートを無効とすることができます。 Windows版の PHP にはこの拡張モジュールのサポートが組み込まれています。これらの関数を使用するために拡張モジュールを追加でロードする必要はありません。 注意 オーバーロードの組み込みサポートはPHP 4.3.0で利用可能となりました。 この拡張モジュールは設定ディレクティブを全く 定義しません。 この拡張モジュールはリソース型を全く定義し ません。 この拡張モジュールは定数を全く定義しませ ん。 overload() 関数の簡単な使用例をいくつか示します。 例 1PHPクラスのオーバーロード この拡張モジュールは実験的なステータスにあり、全ての機能が動作す るわけではありません。現在、 __call() はサポート されておらず、プロパティの取得または設定操作のオーバーロードだけ が可能です。クラスの元のオーバーロードハンドラを削除することはで きません。また、 __set() はプロパティの一段階に アクセス場合にのみ動作します。