Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Beschreibung des PHP-Reflektionsmechanismus und detaillierte Beispiele

Eine kurze Beschreibung des PHP-Reflektionsmechanismus und detaillierte Beispiele

巴扎黑
巴扎黑Original
2017-08-16 10:22:511419Durchsuche


Zusammenfassung: In diesem Artikel wird hauptsächlich die Verwendung des PHP-Reflexionsmechanismus vorgestellt, ein wichtiges Konzept in der PHP-Programmierung. Freunde, die ihn benötigen, können darauf verweisen

1. Was ist Reflexion
Reflection ist eine API zur Manipulation des Metamodells im objektorientierten Paradigma (php5)
Über ReflectionClass können wir die folgenden Informationen der Person-Klasse erhalten :
1) Konstanteninhalt
2) Eigenschaftseigenschaftsnamen
3) Methodennamen Statisch
4) Eigenschaft Statische Eigenschaften
5) Namespace Namespace
6) Ob die Personenklasse endgültig ist oder abstrakt

<? php
   classPerson {
    public $id;
    public $username;
    private $pwd;
    private $sex;
    public function run() {
        echo &#39;<br/>running';
    }
}
$class = new ReflectionClass('Person'); //建立反射类
$instance=$class->newInstance(); //实例化
print_r($instance); //Person Object ( [id] => [username] => [pwd:Person:private] => [sex:Person:private] => )$properties = $class->getProperties();foreach($properties as $property) {
echo "<br/>" . $property->getName();
} 
//默认情况下,ReflectionClass会获取到所有的属性,private 和 protected的也可以。如果只想获取到private属性,就要额外传个参数:
//$private_properties = $class->getProperties(ReflectionProperty::IS_PRIVATE);
//可用参数列表:
//               ReflectionProperty::IS_STATIC
//               ReflectionProperty::IS_PUBLIC
//               ReflectionProperty::IS_PROTECTED
//               ReflectionProperty::IS_PRIVATE
//     如果要同时获取public 和private 属性,就这样写:ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED。
//   通过$property->getName()可以得到属性名。$class->getMethods();
//获取方法(methods):通过getMethods() 来获取到类的所有methods。$instance->run();
 //执行Person 里的方法getBiography
 //或者:$ec=$class->getmethod('run');  
 //获取Person 类中的getName方法$ec->invoke($instance);

Das obige ist der detaillierte Inhalt vonEine kurze Beschreibung des PHP-Reflektionsmechanismus und detaillierte Beispiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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