【发布时间】:2011-01-20 00:20:57
【问题描述】:
假设我在不同的文件中有以下类:
<?php
namespace MyNS;
class superclass {
public function getNamespace(){
return __NAMESPACE__;
}
}
?>
<?php
namespace MyNS\SubNS;
class childclass extends superclass { }
?>
如果我实例化“childclass”并调用 getNamespace(),它会返回“MyNS”。
有什么方法可以在不重新声明方法的情况下从子类获取当前命名空间?
我已经在每个类中创建了一个静态 $namespace 变量并使用 super::$namespace 引用它,但这感觉不是很优雅。
【问题讨论】:
-
虽然没有特别要求,但您可能也对
namespace关键字感兴趣,doc.php.net/language.namespaces.nsconstants 例如echo namespace\MyClass::myFunction(); -
谢谢,我知道但不幸的是它在这种情况下不起作用! :)
标签: php inheritance namespaces