Dieser Artikel stellt hauptsächlich PHP zum Erhalten von Klassen durch Reflexion vor und hat einen gewissen Referenzwert. Jetzt können Freunde in Not darauf verweisen Schauen Sie sich den Kerncode des Laravel-Frameworks an. Es wurde eine umfangreiche Verwendung des Reflexionsmechanismus gefunden. Werfen wir einen kurzen Blick auf einige Reflexionsanwendungen.
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');//获得反射
Lassen Sie uns diese Reflexion verwenden, um die privaten Attribute von
$privateParams = $refClass->getDefaultProperties(); print_r($privateParams);//得到结果 Array ( [_foo] => this is a ) echo $privateParams['_foo'];//得到 this is a
A
abzurufen, damit wir leicht die Private-Eigenschaft erhalten können. Was ist also zu tun, um private Methoden auszuführen? Schauen wir uns als Nächstes zunächst die Ausführung öffentlicher Methoden an. Die Ausführung öffentlicher Methoden ist relativ einfach. /****************获得类的实例*******************/ $class = $refClass->newInstance(); echo $class->index();
A
Auf diese Weise können Sie öffentliche Methoden aufrufen. Schauen wir uns die Ausführung der privaten Methode /****************获取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
an. Zuerst können Sie die Methode
über abrufen und dann die Zugänglichkeit der Methode getMethod()
festlegen. Führen Sie abschließend die Methode durch come
come
invoke
Es stehen viele andere Methoden zur Reflexion zur Verfügung, daher werde ich hier nicht einzeln darauf eingehen. Interessierte können sich die offizielle Dokumentation ansehen.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie im PHP-Chinesisch Webseite!
Verwandte Empfehlungen:
Hinweise zur PHP-FPM-Parameterkonfiguration für PHP7+Das obige ist der detaillierte Inhalt vonPHP verwendet Reflektion, um Klassen und einige grundlegende Anwendungen abzurufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!