Heim  >  Artikel  >  Backend-Entwicklung  >  Das Prinzip der PHP-Reflexion

Das Prinzip der PHP-Reflexion

(*-*)浩
(*-*)浩Original
2019-09-03 13:51:473276Durchsuche

Das Prinzip der PHP-Reflexion

Was ist Reflexion?

Objekte in der objektorientierten PHP-Programmierung erhalten vom System die Fähigkeit zur Selbstbeobachtung, und dieser Selbstbeobachtungsprozess wird als Reflexion bezeichnet.

Unser intuitives Verständnis von Reflexion kann der Prozess sein, den Ausgangspunkt und die Quelle basierend auf dem Ankunftspunkt zu finden. Danach werde ich Ihnen ein bloßes Objekt geben Objekt. Zu welcher Klasse es gehört und welche Methoden es hat.

In PHP bezieht sich Reflexion auf die Erweiterung der Analyse von PHP-Programmen im laufenden Zustand von PHP, das Exportieren oder Extrahieren detaillierter Informationen zu Klassen, Attributen, Methoden, Parametern usw., einschließlich Kommentaren. Diese Funktion zum dynamischen Abrufen von Informationen und zum dynamischen Aufrufen von Objektmethoden wird als Reflexions-API bezeichnet.

Lassen Sie es uns anhand eines Codes erleben:

class person{
    public $name;
    public $age;
 
    public function say()
    {
        echo $this->name."<br>".$this->age;
    }
 
    public function set($name,$value)
    {
        echo &#39;set name to value&#39;;
        $this->$name = $value;
    }
 
    public function get($name)
    {
        if(!isset($this->$name)){
            echo &#39;unset name&#39;;
            $this->$name = &#39;seting~~~&#39;;
        }
 
        return $this->$name;
    }
}
 
$stu = new person();
$stu->name = &#39;luyaran&#39;;
$stu->age = 26;
$stu->sex = &#39;girl&#39;;

Der obige Code ist eine einfache Klasse und weist Werte zu, damit er eine Bedeutung hat .

Danach erhalten wir eine Liste der Methoden und Attribute dieses Stu-Objekts über die Reflection-API:

//获取对象的属性列表
$reflect = new ReflectionObject($stu);
$props = $reflect->getProperties();
foreach ($props as $key_p => $value_p) {
    var_dump($value_p->getName());
}
//获取对象的方法列表
$method = $reflect->getMethods();
foreach ($method as $key_m => $value_m) {
    var_dump($value_m->getName());
}

Gleichzeitig kann Reflection nicht nur für Klassen und Objekte verwendet werden, sondern auch auch für Funktionen, Erweiterungsmodule, Ausnahmen usw.

Was uns betrifft, werden wir hier nicht auf Details eingehen. Lassen Sie uns im letzten Abschnitt über einige Funktionen der Reflexion sprechen.

Erstens kann es zur Dokumentgenerierung verwendet werden, sodass wir damit die Klassen im Dokument scannen und gescannte Dokumente einzeln generieren können.

Reflection kann die interne Struktur einer Klasse erkennen, kann auch als Hook zum Implementieren von Plug-In-Funktionen verwendet werden und kann auch als dynamischer Proxy verwendet werden.

Das obige ist der detaillierte Inhalt vonDas Prinzip der PHP-Reflexion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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