如何自动检索类命名空间?
魔术 var__NAMESPACE__
是不可靠的,因为在子类中它没有正确定义。
例子:
class Foo\bar\A
-> __NAMESPACE__
=== Foo\bar
class Ping\pong\B extends Foo\bar\A
-> __NAMESPACE__
=== Foo\bar(应该是 Ping\pong)
ps:我注意到使用相同的错误行为__CLASS__
,但我解决了使用get_called_class()
...有类似的东西get_called_class_namespace()
吗?我怎样才能实现这样的功能?
更新:
我认为解决方案是我自己的问题,因为我意识到get_called_class()
返回完全限定的类名,因此我可以从中提取名称空间:D ...无论如何,如果有更有效的方法让我知道;)