PHP 5 は完全なリフレクション API を備えており、クラス、インターフェイス、関数、メソッド、拡張機能をリバース エンジニアリングする機能が追加されています。 さらに、Reflection API は、関数、クラス、メソッドからドキュメント コメントを抽出するメソッドを提供します。
ReflectionClass::__construct — ReflectionClass クラスを構築します
public ReflectionClass::__construct ( mixed $argument )
ReflectionClass::newInstanceArgs — 指定されたパラメーターから新しいクラス インスタンスを作成します。指定されたパラメーターが渡されます。クラスのコンストラクターに。
public object ReflectionClass::newInstanceArgs ([ array $args ] )
/thinkphp/library/think/Container.php
/** * 调用反射执行类的实例化 支持依赖注入 * @access public * @param string $class 类名 * @param array $vars 参数 * @return mixed */ public function invokeClass($class, $vars = []) { try { $reflect = new ReflectionClass($class); $constructor = $reflect->getConstructor(); //用于支持依赖的注入 $args = $constructor ? $this->bindParams($constructor, $vars) : []; return $reflect->newInstanceArgs($args); } catch (ReflectionException $e) { throw new ClassNotFoundException('class not exists: ' . $class, $class); } }
関連推奨事項:
実行クラスでプライベートメソッドを呼び出すPHPリフレクションメソッドの詳細説明
PHPのリフレクションメカニズムとプラグインアーキテクチャの例の詳細な説明
以上がPHPのリフレクションメカニズムの説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。