Detaillierte Erläuterung der Reflection API von PHP

*文
Freigeben: 2023-03-18 15:30:01
Original
1513 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die PHP Reflection API vorgestellt und die Reflection-Klasse, die ReflectionException-Klasse, die ReflectionFunction-Klasse, die ReflectionParameter-Klasse, die ReflectionClass-Klasse, die ReflectionMethod-Klasse usw. erläutert. Ich hoffe, es hilft allen.

PHP Reflection API ist eine neue Funktion, die nur in PHP5 verfügbar ist. Sie wird zum Exportieren oder Extrahieren detaillierter Informationen zu Klassen, Methoden, Eigenschaften, Parametern usw., einschließlich Kommentaren, verwendet.

PHP Reflection API enthält:

class Reflection { } interface Reflector { } class ReflectionException extends Exception { } class ReflectionFunction implements Reflector { } class ReflectionParameter implements Reflector { } class ReflectionMethod extends ReflectionFunction { } class ReflectionClass implements Reflector { } class ReflectionObject extends ReflectionClass { } class ReflectionProperty implements Reflector { } class ReflectionExtension implements Reflector { }
Nach dem Login kopieren

Spezifische API-Beschreibung:

①Reflection-Klasse

Nach dem Login kopieren

②ReflectionException-Klasse

Diese Klasse erbt die Standardklasse und hat keine spezielle Methoden und Attribute.

③ReflectionFunction-Klasse

Nach dem Login kopieren

④ReflectionParameter-Klasse:

Nach dem Login kopieren

⑤ReflectionClass-Klasse:

getModifiers())进一步读取 public bool isInstance(stdclass object) //测试传入的对象是否为该类的一个实例 public stdclass newInstance(mixed* args) //创建该类实例 public ReflectionClass getParentClass() //取得父类 public bool isSubclassOf(ReflectionClass class) //测试传入的类是否为该类的父类 public array getStaticProperties() //取得该类的所有静态属性 public mixed getStaticPropertyValue(string name [, mixed default]) //取得该类的静态属性值,若private,则不可访问 public void setStaticPropertyValue(string name, mixed value) //设置该类的静态属性值,若private,则不可访问,有悖封装原则 public array getDefaultProperties() //取得该类的属性信息,不含静态属性 public bool isIterateable() public bool implementsInterface(string name) //测试是否实现了某个特定接口 public ReflectionExtension getExtension() public string getExtensionName() } ?>
Nach dem Login kopieren

⑥ReflectionMethod-Klasse :

Nach dem Login kopieren

⑦ReflectionProperty-Klasse:

Nach dem Login kopieren

⑧ReflectionExtension Klasse

Nach dem Login kopieren

Anwendungsbeispiel:

sex = "male"; } public function action(){ echo "来自http://www.jb51.net的测试"; } } $class = new ReflectionClass('Person'); //获取属性 foreach($class->getProperties() as $property) { echo $property->getName()."\n"; } //获取方法 print_r($class->getMethods()); $p1 = new Person(); $obj = new ReflectionObject($p1); //获取对象和类的属性 print_r($obj->getProperties());
Nach dem Login kopieren

Offensichtlich der obige Code Die von Objekten und Klassen erhaltenen Attribute sind unterschiedlich. Dies liegt daran, dass das Objekt durch ein Konstrukt instanziiert wird. Daher kann PHP Reflection durch das Hinzufügen des Geschlechtsattributs tatsächlich viele nützliche Informationen erhalten.

Verwandte Empfehlungen:

Einsteiger mit PHP-API erste Erfahrungen mit PHP-API-Dokumentation, PHP-API-Schnittstellenentwicklung, PHP-Web-AP

Einführung in Turing Robot PHP API_PHP-Tutorial

Erfahrungen beim Erstellen Ihres eigenen PHP-Frameworks (2) PHP-API-Framework PHP WeChat Entwicklungsframework PHP-CI-Framework-Unterricht

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Reflection API von 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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!