Я не совсем ясно, что использовать нужно иметь для ::class
против строки. Простой факт заключается в том, что если это сработает, оно просто выведет ту же строку, что и у вас. т.е. в вашем примере 'MyClass'::class
выводит строку MyClass
.
Возможно, вы пытаетесь создать строку, которая просто содержит имя класса, и вы пытаетесь разрешить пространство имен? Это не сработает. Но вы можете получить текущее пространство имен с помощью __NAMESPACE__
зарезервированного слова:
namespace foo\bar;
echo __NAMESPACE__; //will output 'foo\bar'
Вы можете использовать это в сочетании со строкой Classname построить полностью квалифицированное имя класса для текущего пространства имен.
Если вы хотите получить имя класса из другого пространства имен, вам необходимо заранее знать пространство имен; без пространства имен PHP не сможет найти класс вообще.
Все данные с вашего ввода будут выглядеть именно так? – vitozev
Я не получаю, какой ввод? – naneri
@naneri вы хотите использовать его так: '$ dynamic_name_of_the_class :: class'? –