PHP 反射(Reflection)使用实例
是用于获取类、扩展、方法、函数、对象、参数、属性的详细信息。 ReflectionClass类获取类相关信息,如获取属性、方法、文档注释等。 class Person {
/**
/* type=primary_autoincrement / /* type=varchar length=255 null / /* type=text null / public function getId() //导出类 $r = new ReflectionClass('Person'); //获取所有属性 /**
//获取注释 //获取方法 ReflectionExtension 类用于获取扩展相关信息 getClasses()); //扩展的所有类
print_r($re->getClassNames()); //扩展所有类名
$dom = new ReflectionExtension('mysql'); ReflectionFunction类 用户获取函数相关信息 foreach($rf->getParameters() as $item) {
echo $item . PHP_EOL; } ReflectionMethod类用户获取方法相关信息 public $name;
/**
$rm = new ReflectionMethod('Person','getName'); print_r($rm->isPublic()); ReflectionObject 类 用于获取对象相关信息 public $name;
public function __construct($name) public function getName() public function setName($v) $a = new Person('a'); $ro = new ReflectionObject($a); print_r($ro->getMethods()); ReflectionParameter 获取函数或方法参数的相关信息。 public $name;
public function __construct($name) public function getName() public function setName($v) $p = new ReflectionParameter(array('Person','setName'),0); print_r($p->getPosition()); //0 ReflectionProperty 获取类的属性的相关信息。 /* 测试 / public $name; public function __construct($name) public function getName() public function setName($v) $p = new ReflectionProperty('Person','name'); print_r($p->getDocComment()); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |