PHP では、リフレクションとは、PHP の実行状態で PHP プログラムの分析を拡張し、クラス、プロパティ、メソッド、パラメーターなどに関するコメントを含む詳細情報をエクスポートまたは抽出することを指します。この動的に情報を取得し、オブジェクトのメソッドを動的に呼び出す機能をリフレクションAPIと呼びます。
コードを通して体験してみましょう:
class person{ public $name; public $age; public function say() { echo $this->name."<br>".$this->age; } public function set($name,$value) { echo 'set name to value'; $this->$name = $value; } public function get($name) { if(!isset($this->$name)){ echo 'unset name'; $this->$name = 'seting~~~'; } return $this->$name; } } $stu = new person(); $stu->name = 'luyaran'; $stu->age = 26; $stu->sex = 'girl';上記のコードは単純なクラスです。インスタンス化して値を割り当てて、それを実現します。意味があります。 その後、リフレクション API を通じてこの stu オブジェクトのメソッドとプロパティのリストを取得しましょう:
//获取对象的属性列表 $reflect = new ReflectionObject($stu); $props = $reflect->getProperties(); foreach ($props as $key_p => $value_p) { var_dump($value_p->getName()); } //获取对象的方法列表 $method = $reflect->getMethods(); foreach ($method as $key_m => $value_m) { var_dump($value_m->getName()); }同時に、リフレクションはクラスやオブジェクトだけでなく、関数、拡張モジュール、例外などにも対応します。 私たちに関しては、ここでは詳細には触れませんが、最後のスペースで、リフレクションのいくつかの機能について説明しましょう。 まず第一に、これはドキュメントの生成に使用できるため、これを使用してドキュメント内のクラスをスキャンし、スキャンされたドキュメントを 1 つずつ生成できます。 リフレクションはクラスの内部構造を検出でき、プラグイン関数を実装するためのフックとして使用したり、動的プロキシとしても使用できます。
以上がPHPリフレクションの原理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。