PHPのリフレクションメカニズムの説明

小云云
リリース: 2023-03-21 11:00:02
オリジナル
1580 人が閲覧しました

PHP 5 は完全なリフレクション API を備えており、クラス、インターフェイス、関数、メソッド、拡張機能をリバース エンジニアリングする機能が追加されています。 さらに、Reflection API は、関数、クラス、メソッドからドキュメント コメントを抽出するメソッドを提供します。

tp フレームワークでのリフレクションの使用:

  • 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のリフレクションメカニズムの説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート