📜  PHP | ReflectionClass getProperties()函数(1)

📅  最后修改于: 2023-12-03 15:33:34.332000             🧑  作者: Mango

PHP | ReflectionClass getProperties()函数

ReflectionClass 是 PHP 中的一个内置类,用于获取关于类的详细信息。getProperties()是 ReflectionClass 类中的一个方法,用于获取类的属性信息。

语法
public ReflectionProperty[] ReflectionClass::getProperties([ int $filter = null ])

参数说明:

  • $filter: 过滤条件,默认值为 null,表示不做过滤,可选值有:

    • ReflectionProperty::IS_STATIC: 静态属性
    • ReflectionProperty::IS_PUBLIC: 公有属性
    • ReflectionProperty::IS_PROTECTED: 受保护的属性
    • ReflectionProperty::IS_PRIVATE: 私有属性

    可以用 "|" 符号将多个过滤条件组合使用。

返回值

该方法返回一个 ReflectionProperty 对象数组,每个元素都表示一个属性对象。

使用示例
class ExampleClass {
    public $publicProperty;
    protected $protectedProperty;
    private $privateProperty;

    public function exampleFunction() {
        echo "Hello World!";
    }
}

$reflectionClass = new ReflectionClass('ExampleClass');
$properties = $reflectionClass->getProperties();

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

输出结果:

publicProperty
protectedProperty
privateProperty

上述示例中,我们创建了一个名为 ExampleClass 的类,并定义了三个属性:$publicProperty 为公有属性,$protectedProperty 为受保护的属性,$privateProperty 为私有属性。

然后,我们使用 ReflectionClass 类获取 ExampleClass 类的详细信息,并使用 getProperties() 方法获取该类的属性数组。最后,我们使用 foreach 循环遍历属性数组,并使用 ReflectionProperty 对象中的 getName() 方法获取属性名,并输出到屏幕上。

结论

使用 ReflectionClass 类的 getProperties() 方法,可以方便地获取一个类的所有属性信息,从而更好地了解该类的结构和特点。同时,该方法还支持属性过滤,让获取信息更加灵活。