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 )
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 ] )
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); } }
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!