如何自动获取类名称空间?动态获取PHP类名称空间
神奇的变种__NAMESPACE__
是不可靠的,因为在子类中它没有正确定义。
实施例:
class Foo\bar\A
- >__NAMESPACE__
===富\酒吧
class Ping\pong\B extends Foo\bar\A
- >__NAMESPACE__
===富\栏(应当平\乒乓)
PS:我注意到使用__CLASS__
,但我使用get_called_class()
解决了同样的错误行为...有没有像get_called_class_namespace()
?我怎样才能实现这样的功能?
UPDATE:
我认为解决的办法是我自己的问题,因为我意识到get_called_class()
回报完全合格的类名,因此我可以提取它的命名空间:d ...总之,如果有一个更有效做法让我知道了;)
您的解决方案是我必须在个人代码中完成的。 http://codepad.viper-7.com/EgObtf –
你所描述的并不是错误的行为。看看这些常量是什么:http://php.net/language.constants.predefined - 当你找到了解决问题的办法时,你可以回答你自己的问题。 – hakre
检查这一个。我想这就是你的意思是: http://stackoverflow.com/questions/2317343/get-child-class-namespace-from-superclass-in-php/20193599#20193599 – Chris