查询

ReflectionClass::getProperties()函数—用法及示例

「 获取类的属性信息 」


ReflectionClass::getProperties()函数用于获取类的属性信息。

函数签名: array ReflectionClass::getProperties(int $filter = null)

参数:

  • $filter(可选):用于过滤属性的参数,可以是以下常量之一:
    • ReflectionProperty::IS_STATIC:仅返回静态属性
    • ReflectionProperty::IS_PUBLIC:仅返回公共属性
    • ReflectionProperty::IS_PROTECTED:仅返回受保护的属性
    • ReflectionProperty::IS_PRIVATE:仅返回私有属性

返回值: 返回一个ReflectionProperty对象的数组,每个对象表示一个属性。

示例:

class MyClass {
    public $publicProperty;
    protected $protectedProperty;
    private $privateProperty;
    static $staticProperty;
}

$reflection = new ReflectionClass('MyClass');
$properties = $reflection->getProperties();

foreach ($properties as $property) {
    echo $property->getName() . "\n";
}

输出:

publicProperty
protectedProperty
privateProperty
staticProperty

在上面的示例中,我们创建了一个名为MyClass的类,并定义了不同类型的属性。然后我们使用ReflectionClass来获取该类的属性信息,并使用foreach循环遍历每个属性,并通过ReflectionProperty的getName()方法获取属性的名称并打印出来。

需要注意的是,如果想获取特定类型的属性,可以在getProperties()函数中传递相应的过滤参数。例如,如果只想获取静态属性,可以使用$properties = $reflection->getProperties(ReflectionProperty::IS_STATIC);

补充纠错
热门PHP函数
分享链接