我正在开发一个PHP应用程序。现在,我试图通过反射遍历PHP类的所有static / const属性。
我有一堂这样的课
class MyClass
{
const MY_CONST = "my_const";
public static $MY_STATIC_PROP = "my_static_prop";
}
我想做的是我想遍历一个类的所有属性,并检查该属性的名称是否等于某物。
if ($property_name == "something") {
//do something
}
如何在PHP中做到这一点?
答案 0 :(得分:0)
要获取private
和public
属性,可以使用get_object_vars();对于const
和static
属性,可以使用ReflectionClass()类对象。最后合并所有属性。示例:
class MyClass
{
const MY_CONST = "my_const";
public static $MY_STATIC_PROP = "my_static_prop";
public $pub = 'Pub';
public $pvt = 'Pvt';
}
$ref = new ReflectionClass('MyClass');
$allProperties = get_object_vars(new MyClass) + $ref->getConstants() + $ref->getStaticProperties();
foreach ($allProperties as $name => $vale) {
if ($name === 'something') {
// do stuff
}
}