Detaillierte Beschreibung der Reflexion in PHP

韦小宝
Freigeben: 2023-03-21 11:14:01
Original
1649 Leute haben es durchsucht

In diesem Artikel geht es um die Reflexion in PHP. Wenn Sie nicht viel über die Reflexion in PHP wissen, werfen wir einen kurzen Blick darauf.

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

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

public ReflectionClass::__construct ( mixed $argument )
Nach dem Login kopieren

2. ReflectionClass::newInstanceArgs — Erstellt eine neue Klasseninstanz aus den angegebenen Parametern, die an den Konstruktor der Klasse übergeben wird.

public object ReflectionClass::newInstanceArgs ([ array $args ] )
Nach dem Login kopieren

3./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

In diesem Artikel geht es kurz um die Reflexion in PHP. Wenn Sie es immer noch nicht verstehen, üben Sie es bitte und schreibe selbst!


Das obige ist der detaillierte Inhalt vonDetaillierte Beschreibung der Reflexion in PHP. 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