Рассмотрим следующий код 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\bar\MyClass
и класс\foo\anotherbar\MyClass
? - person Federkun   schedule 03.06.2015use foo\bar\MyClass; use foo\anotherbar\MyClass;
приведет к фатальной ошибке: имя уже используется. - person Magnar Myrtveit   schedule 03.06.2015