希望检查一个对象,查看它有哪些方法和属性,从而可以编写适用任何通用对象的代码,而不论对象的具体类型是什么。
可以使用Reflection类探查对象的信息。要快速查看类的信息,可以调用Refection::export():
class Person{
public $name;
protected $spouse;
private $password;
public function __construct($name){$this->name = $name;
}public function getName(){return $name;
}public function setSpouse(Person $spouse){if(!isset($this->spouse)){$this->spouse = $spouse;}
}public function setPassword($password){$this->password = $password;
}
}
Reflection::export(new ReflectionClass('Person'));
Reflection::export()静态方法取一个ReflectionClass类实例为参数,并返回大量信息。可以看到,这里详细给出了常量、静态属性、静态方法以及类中属性和方法的个数。每一项又分解为子部分。例如,所有项都包含可见性标识符(private、protected或public),方法的定义下面还列出了这个方法的参数列表。