获取除静态属性

时间:2018-05-11 17:36:57

标签: php reflection

我试过了:

$rc = new \ReflectionClass($this);
$rc->getProperties(ReflectionProperty::IS_PUBLIC || ReflectionProperty::IS_PRIVATE || ReflectionProperty::IS_PROTECTED)

但所做的就是给我一个班级static属性。它有3个private和一个static。我只是想知道如何清除static个。

1 个答案:

答案 0 :(得分:1)

您的static属性也是publicprivateprotected,因此它也会返回它们。您需要使用isStatic()检查每个属性:

foreach($rc->getProperties() as $prop) {
    if(!$prop->isStatic()) {  // or $prop->isStatic() === false
        $result[] = $prop;
    }
}

getProperties()默认为所有属性。