ホームページ >バックエンド開発 >PHPチュートリアル >クラスのオーバーロードと自動ロード_PHP チュートリアル
PHP4 には、Java や COM と同様に、外部オブジェクト モデルへのマッピングを確立するためのオーバーロード構文がすでにあり、PHP5 は強力なオブジェクト指向オーバーロードを提供し、プログラマーがプロパティにアクセスするためのカスタム動作を作成したり、
メソッドを呼び出すことができます。 Zend エンジンがメンバーにアクセスしようとして見つからない場合、PHP はこれらのメソッドを呼び出します。例 1 では、__get と __set が属性変数配列へのすべてのアクセスを置き換えます。必要に応じて、任意のタイプのフィルタリングを実装できます。たとえば、スクリプトで属性値の設定を無効にしたり、特定のプレフィックスで開始したり、特定のタイプの値を含めたりすることができます。
__call メソッドは、未定義のメソッドを呼び出す方法を示しています。未定義のメソッドを呼び出すと、メソッド名とメソッドによって受け取られたパラメータが __call メソッドに渡され、PHP は __call の値を未定義のメソッドに返します。ユーザーレベルのオーバーロード未定義のクラスを使用しようとすると、PHP は致命的なエラーを報告します。解決策はクラスを追加することです。結局のところ、 include でファイルをインクルードすることができます。ただし、PHP にはクラスの自動ロード機能があり、PHP が体系化していないクラスを使用しようとすると、この関数のグローバル関数が検索されます。
例 図 2 は、スクリプトがクラス名を生成しようとするときに、現在のディレクトリ内の各ファイルがどのように使用されるかを示しています。 User クラスのインスタンスの場合、PHP は __autoload を実行します。このスクリプトは、User クラスが class_User.php で定義されていると想定します。呼び出しが大文字か小文字かに関係なく、PHP は小文字の名前を返します 。りー