所以假设我有
class B extends A{}
和B包含一大堆类常量
有没有办法在A中定义一个静态函数来获取调用子类中的所有类常量?
例如,有没有办法在A
中定义静态函数getChildConstants()
这样如果你调用B::getChildConstants()
(B可以访问这个函数,因为B扩展了A),这个函数将返回B中的所有类常量。而且,这个函数必须只在A中定义。即,我不想在B中重新实现getChildCosntants()。
这样,对于任何扩展A的类,我都可以轻松获得此类的常量,而无需重复实现/重写/复制并将getChildConstants()粘贴到选定的子类中一遍又一遍
所以我想要一个通用常量在A中获取函数,这样对于任何扩展A的类,我都可以通过简单地调用这个在A中定义的通用常量获取函数来获得这类的类常量
我必须重申getChildConstant()函数必须是静态的
答案 0 :(得分:1)
您无需为此定义函数。您可以直接在子类上使用反射。
$reflector = new ReflectionClass('B');
var_dump($reflector->getConstants());
这会满足您的需求吗?