PHP5 には、リフレクションという新しい機能が追加されています。この機能により、プログラマーは
リバース エンジニアリング [リバース エンジニアリング] クラス、インターフェイス、関数、メソッド、拡張機能 [拡張ライブラリのサポート] を行うことができます。
PHP コードを通じて、オブジェクトのすべての情報を取得し、オブジェクトと対話することができます。
次の Person クラスを想定します:class Person { /** * For the sake of demonstration, we"re setting this private */ private $_allowDynamicAttributes = false; /** * type=primary_autoincrement */ protected $id = 0; /** * type=varchar length=255 null */ protected $name; /** * type=text null */ protected $biography; public function getId() { return $this->id; } public function setId($v) { $this->id = $v; } public function getName() { return $this->name; } public function setName($v) { $this->name = $v; } public function getBiography() { return $this->biography; } public function setBiography($v) { $this->biography = $v; } }
Namespace Namespace
$class = new ReflectionClass('Person');
* プロパティ(Properties)を取得:
$properties = $class->getProperties(); foreach($properties as $property) { echo $property->getName()."\n"; } // 输出: // _allowDynamicAttributes // id // name // biography
ReflectionProperty::IS_STATIC
$property を通じてプロパティ名を取得できます。 ->getName()、getDocComment を渡すと、プロパティに書き込まれたコメントを取得できます。
$private_properties = $class->getProperties(ReflectionProperty::IS_PRIVATE);
* メソッドの取得
: getMethods() を通じてクラスのすべてのメソッドを取得します。返されるのは、ReflectionMethod オブジェクトの
です。
これ以上のデモはありません。 * 最後に、ReflectionMethod を通じてクラス内のメソッドを呼び出します。
りー
以上がphp Reflectionの詳細説明 反映機構例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。