PHP5 には、リフレクションという新しい機能が追加されています。この機能により、プログラマはクラス、インターフェイス、関数、メソッド、拡張機能をリバース エンジニアリングできます。 PHP コードを通じて、オブジェクトのすべての情報を取得し、オブジェクトと対話できます。
クラス人:
があるとします。 リーリーReflectionClass を通じて、Person クラスの次の情報を取得できます:
クラス名「person」を ReflectionClass に渡すだけです:
リーリープロパティの取得 (プロパティ):
リーリーデフォルトでは、ReflectionClass はプライベートおよび保護されたプロパティを含むすべてのプロパティを取得します。プライベート属性のみを取得したい場合は、追加のパラメーターを渡す必要があります:
リーリー利用可能なパラメータリスト:
パブリック プロパティとプライベート プロパティの両方を取得したい場合は、次のように記述します: ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED
それは奇妙に感じるべきではありません。プロパティ名は $property->getName() を通じて取得でき、プロパティに書き込まれたコメントは getDocComment を通じて取得できます。
リーリー
それはちょっと信じられないですね。コメントも取得できます。メソッドの取得: getMethods() を通じてクラスのすべてのメソッドを取得します。返されるのは、ReflectionMethod オブジェクトの配列です。これ以上のデモはありません。
最後に、ReflectionMethod を通じてクラス内のメソッドを呼び出します。
リーリー
ちょっと面白い。