假设我有两个班级:
class ParentClass
{
public $foo;
}
和
class ChildClass extends ParentClass
{
public $bar;
public static $foobar;
}
如何从ChildClass中获取非继承的,非静态的财产名称?所以在这种情况下,只有 bar ?
答案 0 :(得分:1)
Reflection API将帮助您将一个类的所有属性作为数组获取,接下来,您必须过滤该数组:
$foo = new ChildClass();
$reflect = new ReflectionClass($foo);
$props = $reflect->getProperties();
foreach ($props as $prop) {
if (!$prop->isStatic() && $prop->getDeclaringClass()->getName() === 'ChildClass') {
echo $prop->getName() . PHP_EOL;
}
}