从PHP中的父级获取子类的常量列表

时间:2011-10-29 04:20:32

标签: php class object inheritance

所以假设我有

class B extends A{}

和B包含一大堆类常量

有没有办法在A中定义一个静态函数来获取调用子类中的所有类常量?

例如,有没有办法在A

中定义静态函数getChildConstants()

这样如果你调用B::getChildConstants()(B可以访问这个函数,因为B扩展了A),这个函数将返回B中的所有类常量。而且,这个函数必须只在A中定义。即,我不想在B中重新实现getChildCosntants()。

这样,对于任何扩展A的类,我都可以轻松获得此类的常量,而无需重复实现/重写/复制并将getChildConstants()粘贴到选定的子类中一遍又一遍

所以我想要一个通用常量在A中获取函数,这样对于任何扩展A的类,我都可以通过简单地调用这个在A中定义的通用常量获取函数来获得这类的类常量

我必须重申getChildConstant()函数必须是静态的

1 个答案:

答案 0 :(得分:1)

您无需为此定义函数。您可以直接在子类上使用反射。

$reflector = new ReflectionClass('B');
var_dump($reflector->getConstants());

这会满足您的需求吗?

get all class constants