Heim > Backend-Entwicklung > PHP-Tutorial > Erklärung des PHP-Reflektionsmechanismus

Erklärung des PHP-Reflektionsmechanismus

小云云
Freigeben: 2023-03-21 11:00:02
Original
1589 Leute haben es durchsucht

PHP 5 verfügt über eine vollständige Reflexions-API und bietet die Möglichkeit, Klassen, Schnittstellen, Funktionen, Methoden und Erweiterungen zurückzuentwickeln. Darüber hinaus stellt die Reflection-API Methoden zum Extrahieren von Dokumentationskommentaren aus Funktionen, Klassen und Methoden bereit.

Die Verwendung von Reflection im tp-Framework:

  • ReflectionClass::__construct – Konstruieren Sie eine ReflectionClass-Klasse

public ReflectionClass::__construct ( mixed $argument )
Nach dem Login kopieren
  • ReflectionClass::newInstanceArgs — Erstellt eine neue Klasseninstanz aus den angegebenen Argumenten, die an den Konstruktor der Klasse übergeben wird.

public object ReflectionClass::newInstanceArgs ([ array $args ] )
Nach dem Login kopieren
  • /thinkphp/library/think/Container.php

 /**
     * 调用反射执行类的实例化 支持依赖注入
     * @access public
     * @param  string    $class 类名
     * @param  array     $vars  参数
     * @return mixed
     */
    public function invokeClass($class, $vars = [])
    {
        try {            $reflect = new ReflectionClass($class);            $constructor = $reflect->getConstructor();            //用于支持依赖的注入
            $args = $constructor ? $this->bindParams($constructor, $vars) : [];            return $reflect->newInstanceArgs($args);
        } catch (ReflectionException $e) {            throw new ClassNotFoundException('class not exists: ' . $class, $class);
        }
    }
Nach dem Login kopieren

Verwandte Empfehlungen:

Detaillierte Erläuterung der PHP-Reflektionsmethode, die eine private Methode in der Ausführungsklasse aufruft

Kurze Erläuterung des Beispiels eines PHP-Reflektionsmechanismus

Detaillierte Erläuterung des PHP-Reflektionsmechanismus und Beispiele für Plug-in-Architekturen

Das obige ist der detaillierte Inhalt vonErklärung des PHP-Reflektionsmechanismus. 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