この記事では主に、リフレクションを通じてクラスを取得するための PHP といくつかの基本的なアプリケーションを紹介します。これには一定の参考値があります。今、共有します。必要な友人はそれを参照できます。
過去数回今日は、laravel フレームワークのコアコードを見てみましょう。反射メカニズムが広範囲に使用されていることがわかりました。いくつかのリフレクション アプリケーションを簡単に見てみましょう
class A { private $_foo = 'this is a'; public function index() { return $this->_foo; } private function _come($param) { return 'this is come'.$param; } } $refClass = new ReflectionClass('A');//获得反射
このリフレクションを使用して、A
$privateParams = $refClass->getDefaultProperties(); print_r($privateParams);//得到结果 Array ( [_foo] => this is a ) echo $privateParams['_foo'];//得到 this is a
のプライベート プロパティを取得しましょう。これにより、簡単に取得できるようになりますA
のプライベート属性。では、プライベートメソッドを実行するにはどうすればよいでしょうか?次に、パブリック メソッドの実行を最初に見てみましょう。パブリック メソッドの実行は比較的簡単です。
/****************获得类的实例*******************/ $class = $refClass->newInstance(); echo $class->index();
この方法でパブリック メソッドを呼び出すことができます。プライベート メソッド
/****************获取A的方法*******************/ $refHasClass = $refClass->getMethods(); print_r($refHasClass); /*** * Array ( [0] => ReflectionMethod Object ( [name] => index [class] => A ) * [1] => ReflectionMethod Object ( [name] => _come [class] => A ) ) */ $come = $refClass->getMethod('_come'); $come->setAccessible(true); echo $come->invoke($class,'this is param'); // this is athis is comethis is param
の実行を見てみましょう。まず、getMethod()
を通じて come
メソッドを取得し、次に # のアクセシビリティを設定します。 ##come メソッド。最後に、
invoke
php7 の php-fpm パラメータ設定に関する注意事項
以上がPHP はリフレクションを使用してクラスといくつかの基本的なアプリケーションを取得しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。