分类分类
更新时间:2026-04-09 13:14:52作者:zhao
PHP的Reflection反射机制,本文从使用Reflection获取一个类的信息角度来介绍PHP的Reflection反射机制,PHP5添加了一项新的功能:Reflection。这个功能使得程序员可以reverse-engineer class, interface,function,method and extension。通过PHP代码,就可以得到某object的所有信息,并且可以和它交互。
假设有一个类Person:实例介绍PHP的Reflection反射机制
通过ReflectionClass,我们可以得到Person类的以下信息:实例介绍PHP的Reflection反射机制
1.常量 Contants
2.属性 Property Names
3.方法 Method Names
4.静态属性 Static Properties
5.命名空间 Namespace
6.Person类是否为final或者abstract
只要把类名"Person"传递给ReflectionClass就可以了:实例介绍PHP的Reflection反射机制
$class = new ReflectionClass('Person');
获取属性(Properties):
$properties = $class->getProperties();
foreach($properties as $property) {
echo $property->getName()."n";
}
// 输出:
// _allowDynamicAttributes
// id
// name
// biography
默认情况下,ReflectionClass会获取到所有的属性,private 和 protected的也可以。如果只想获取到private属性,就要额外传个参数:实例介绍PHP的Reflection反射机制
$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()可以得到属性名,通过getDocComment可以得到写给property的注释。实例介绍PHP的Reflection反射机制
有点不可思议了吧。竟然连注释都可以取到。
获取方法(methods):通过getMethods() 来获取到类的所有methods。返回的是ReflectionMethod对象的数组。不再演示。
最后通过ReflectionMethod来调用类里面的method。
相关
餐车厨师烹饪游戏苹果版模拟游戏327.2 Mv8.682026-04-09
下载最终幻想7永恒危机ios版角色游戏1.5Gv3.6.02026-04-09
下载英勇之地苹果版射击游戏2.6Gv4.20.22026-04-09
下载森空岛ios版手游辅助163.8 Mv1.55.02026-04-09
下载呱呱AI英语(儿童英语启蒙平台)学习办公334.6 MBv1.3.32026-04-09
下载附近先遇2026下载社交通讯86.0 MBv1.1.412026-04-09
下载变种人吃了我的胡萝卜解锁关卡(冒险童话游戏)趣味娱乐1.20 GBv1.032026-04-09
下载重返战场:特战精英2026下载趣味娱乐99.0 MBv4.12026-04-09
下载手机计算器免费(多功能计算工具)生活服务54.0 MBv1.0.82026-04-09
下载风筝飞呀最新手机版社交通讯64.2 MBv1.1.92026-04-09
下载万用智能点击器(自动化点击工具)生活服务50.7 MBv1.0.02026-04-09
下载天气精准预警(天气查询应用)生活服务46.1 MBv1.00.032026-04-09
下载










