【发布时间】:2014-09-08 00:49:35
【问题描述】:
我有这样的事情:
use Just\Some\Namespace\ClassName;
class A
{
public static function doStuff()
{
echo function_name(ClassName);
}
}
A::doStuff();
我想看到打印的是:Just\Some\Namespace\ClassName
整个想法是我想获得一个类的完整命名空间而不创建该类的对象。
我在网上搜索,最接近解决方案的是this question 中的答案。但是,它们都不是我需要的。
我可以像这样使用反射:
$reflectionClass = new ReflectionClass('Just\\Some\\Namespace\\ClassName');
echo $reflectionClass->getNamespaceName();
但我必须指定命名空间才能创建ReflectionClass。如果我已经知道它,我就不再需要它了。
为了得到Just\Some\Namespace\ClassName,我可以在我的代码中用什么替换function_name?
【问题讨论】:
-
您可以使用 Composer 的自动加载器来获取类的完整命名空间。见stackoverflow.com/a/48862377/2511355
标签: php class namespaces