反射属性过滤器

fra*_*cis 5 php

我有一个包含公共,公共静态,私有和私有静态属性的类,我试图只获取公共属性.我出于某种原因无法得到过滤器,我试过了

ReflectionProperty::IS_PUBLIC & ~ReflectionProperty::IS_STATIC
Run Code Online (Sandbox Code Playgroud)

要么

ReflectionProperty::IS_PUBLIC & (ReflectionProperty::IS_PUBLIC | ~ReflectionProperty::IS_STATIC)
Run Code Online (Sandbox Code Playgroud)

除了其他事情,但要么我继续获得静态公共或私人静态.

Ja͢*_*͢ck 3

您需要查询所有公共信息,然后像这样过滤公共静态信息:

$ro = new ReflectionObject($obj);

$publics = array_filter(
    $ro->getProperties(ReflectionProperty::IS_PUBLIC), 
    function(ReflectionProperty $prop) {
        return !$prop->isStatic();
    }
);
Run Code Online (Sandbox Code Playgroud)