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);
。