对象自省
希望检查一个对象,查看它有哪些方法和属性,从而可以编写适用任何通用对象的代码,而不论对象的具体类型是什么。
可以使用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),方法的定义下面还列出了这个方法的参数列表。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战