我创建了一个特征,我希望能够使用该特征获取类的命名空间。这可能吗? self::class
给我父类的类名,但不是整个命名空间
最佳答案
您可以将 ReflectionClass->getNamespaceName() 与 self::class 的反射结合使用。
MyTrait.php
namespace MyTraitNamespace;
Trait MyTrait{
public function echoClassNamespace()
{
$ref = new \ReflectionClass(self::class);
echo $ref->getNamespaceName(); //Will echo MyClassNamespace
}
public function echoTraitNamespace()
{
echo __NAMESPACE__; //Will echo MyTraitNamespace
}
}
MyClass.php
namespace MyClassNamespace;
use MyTraitNamespace\MyTrait;
class MyClass{
use MyTrait;
}
关于php - 如何从 Trait 获取父命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52910295/