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 { }
Spezifische API-Beschreibung:
①Reflection-Klasse
②ReflectionException-Klasse
Diese Klasse erbt die Standardklasse und hat keine spezielle Methoden und Attribute.
③ReflectionFunction-Klasse
④ReflectionParameter-Klasse:
⑤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() } ?>
⑥ReflectionMethod-Klasse :
⑦ReflectionProperty-Klasse:
⑧ReflectionExtension Klasse
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());
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:
Einführung in Turing Robot PHP API_PHP-Tutorial
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!