魏长东

weichangdong

东邪

php的Reflection

之前在千军破2项目看到,用php写的工具,可以列出类下面所有的方法,感觉神奇,看了代码,原来是通过php的reflection实现的,下面是几个简单的例子。

<?php
class Person{
private $_name;
public $age;
public function __construct(){
$this->sex = "male";
}
public function action(){
echo "来自swordman.sinaapp.com的测试";
}
}
$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());

非常有用的一个类,功能很强大,这写的只是简单的功能。