Рассмотрим следующий PHP кодПолучить пространство имен имя неквалифицированный класса
namespace foo\bar;
class MyClass {}
namespace xyz;
use foo\bar\MyClass;
class OtherClass {}
$a = new MyClass();
$b = new OtherClass();
$a
является экземпляром \foo\bar\MyClass
, в то время как $b
является экземпляром \xyz\OtherClass
. Эти полностью квалифицированные имена классов, я могу получить, позвонив get_class($a)
и get_class($b)
. Но есть ли способ получить полностью квалифицированные имена без создания экземпляров объектов? Есть ли что-то вроде волшебной функции fully_qualified_class_name
, так что fully_qualified_class_name('MyClass')
вернет \foo\bar\MyClass
, а fully_qualified_class_name('OtherClass')
вернет \xyz\OtherClass
? Или мне просто нужно написать полное имя?
и то, что 'fully_qualified_class_name ('MyClass')' должен вернуться, если существует '\ Foo \ бар \ MyClass' класс и' \ foo \ anotherbar \ класс MyClass'? – Federkun
Этого никогда не будет, как 'use foo \ bar \ MyClass; используйте foo \ anotherbar \ MyClass; 'приведет к фатальному" имени уже используется "-error. –