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.
ReflectionClass::__construct – Konstruieren Sie eine ReflectionClass-Klasse
public ReflectionClass::__construct ( mixed $argument )
ReflectionClass::newInstanceArgs — Erstellt eine neue Klasseninstanz aus den angegebenen Argumenten, die an den Konstruktor der Klasse übergeben wird.
public object ReflectionClass::newInstanceArgs ([ array $args ] )
/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); } }
Verwandte Empfehlungen:
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!