phpクラスのリフレクション使用例コード

怪我咯
リリース: 2023-03-13 19:10:02
オリジナル
1451 人が閲覧しました

Reflection は、オブジェクト指向パラダイム メタモデルを操作するための API であり、非常に強力で、複雑でスケーラブルなアプリケーションの構築に役立ちます。その用途には、プラグインの自動ロード、ドキュメントの自動生成が含まれ、PHP 言語の拡張にも使用できます。 PHP リフレクション API は、プログラムのメタデータにアクセスしたり、関連する アノテーション と対話したりするのに役立ついくつかのクラスで構成されています。リフレクションの助けを借りて、クラスによって実装されたメソッドを取得し、クラスのインスタンスを作成し (new での作成とは異なります)、メソッドを呼び出し (これも通常の呼び出しとは異なります)、パラメーターを渡し、 を動的に呼び出すことができます。クラスの static メソッド。

Reflection API は、いくつかのクラス、例外、インターフェイスを含む PHP の組み込み oop テクノロジ拡張機能であり、これらを一緒に使用すると、他のクラス、インターフェイス、メソッド、プロパティ、メソッド、拡張機能の分析に役立ちます。これらの oop 拡張機能はリフレクションと呼ばれ、php ソース コード/ext/reflection ディレクトリにあります。リフレクション API を使用して、リフレクション API 自体をイントロスペクトすることができます (これがリフレクションの本来の意味、つまり自分自身を「見る」ということかもしれません):

この記事では主に PHP クラスのリフレクションの使用法を紹介し、例では一般的なものについて説明しますリフレクション クラスの操作には、特定の参照値があります。必要な友達はそれを参照できます

この記事では、例を通して PHP クラスでのリフレクションの使用について説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです。

この例では、チャネルごとに対応するクラスを取得し、対応する動作を実行する実装を行っています。詳細は次のとおりです:

コードは次のとおりです:

foreach($this->chs as $ch) {
    $className = $this->chsMap[$ch];
    if($className) { // 如果是合法的类名  
 // 获取反射类
 $class = new ReflectionClass($className);
 // 获取类的方法  
 $recd = $class->getmethod('exeRecd');
 // 生成类的实例  
 $instance = $class->newInstance($this->qq, $this->ip);
 // 执行方法  
 $result[$ch] = $recd->invoke($instance);
    }
}
ログイン後にコピー

以上がphpクラスのリフレクション使用例コードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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