У меня есть имя класса, сохраненное в строке в PHP. Можно ли разрешить имя класса с помощью строки?
Если предположить, что у меня есть класс Myclass, мне понадобится что-то вроде:
'Myclass'::class
У меня есть имя класса, сохраненное в строке в PHP. Можно ли разрешить имя класса с помощью строки?
Если предположить, что у меня есть класс Myclass, мне понадобится что-то вроде:
'Myclass'::class
Я не совсем понимаю, как использовать ::class
вместо строки. Простой факт заключается в том, что, если это сработает, он просто выведет ту же строку, что и у вас уже есть. т.е. в вашем примере 'MyClass'::class
выведет строку MyClass
.
Может быть, вы пытаетесь создать строку, содержащую только имя класса, и пытаетесь разрешить пространство имен? Это не сработает. Но вы можете получить текущее пространство имен, используя __NAMESPACE__
зарезервированное слово:
namespace foo\bar;
echo __NAMESPACE__; //will output 'foo\bar'
Вы можете использовать это вместе со строкой имени класса, чтобы создать полное имя класса для текущего пространства имен.
Если вы хотите получить имя класса из другого пространства имен, вам необходимо заранее знать пространство имен; без пространства имен PHP вообще не сможет найти класс.
$dynamic_name_of_the_class::class
? - person Tintu C Raju   schedule 02.12.2015