Я создал черту, и я хочу иметь возможность получить пространство имен класса, используя эту черту. Это возможно? self::class дает мне имя класса родителя, но не все пространство имен
Вы пробовали static::class? stackoverflow.com/questions/5197300/new-self-vs-new-static/…
Не воспроизводится: 3v4l.org/NQQEk
@LawrenceCherone на самом деле не сработает, это вернет пространство имен признака, а не класс.






Вы можете использовать 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;
}
__NAMESPACE__пробовали? 3v4l.org/oRqvK