如何获得PHP类的const /静态属性

时间:2019-07-16 12:08:56

标签: php reflection

我正在开发一个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中做到这一点?

1 个答案:

答案 0 :(得分:0)

要获取privatepublic属性,可以使用get_object_vars();对于conststatic属性,可以使用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
    }
}