Heim > Backend-Entwicklung > PHP-Tutorial > PHP verwendet Reflektion, um Klassen und einige grundlegende Anwendungen abzurufen

PHP verwendet Reflektion, um Klassen und einige grundlegende Anwendungen abzurufen

不言
Freigeben: 2023-04-02 18:20:02
Original
2108 Leute haben es durchsucht

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');//获得反射
Nach dem Login kopieren

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
Nach dem Login kopieren
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();
Nach dem Login kopieren
AAuf 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
Nach dem Login kopieren

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 comecomeinvokeEs 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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage