函数名称:ReflectionProperty::getDeclaringClass()
适用版本:PHP 5, PHP 7
函数描述: ReflectionProperty::getDeclaringClass() 函数用于获取声明该属性的类的反射类。
用法:
$reflectionClass = new ReflectionClass('ClassName');
$reflectionProperty = $reflectionClass->getProperty('propertyName');
$declaringClass = $reflectionProperty->getDeclaringClass();
参数说明:
- 无参数
返回值:
- 返回一个ReflectionClass对象,表示声明该属性的类的反射类。
示例:
class ParentClass {
protected $property;
}
class ChildClass extends ParentClass {
public $property;
}
$reflectionClass = new ReflectionClass('ChildClass');
$reflectionProperty = $reflectionClass->getProperty('property');
$declaringClass = $reflectionProperty->getDeclaringClass();
echo $declaringClass->getName(); // 输出 "ParentClass"
上述示例中,我们定义了一个父类 ParentClass 和一个子类 ChildClass。父类中有一个受保护的属性 $property,子类中有一个公共的属性 $property。通过使用 ReflectionProperty 类,我们可以获取到子类中的属性 $property,并使用 getDeclaringClass() 函数获取到声明该属性的类的反射类,最后通过 getName() 方法获取到类的名称。在这个例子中,输出的结果为 "ParentClass",即子类中的属性 $property 是从父类中继承而来的。