2015-12-02 4 views
3

У меня есть имя класса, сохраненное в строке в PHP. Можно ли разрешить имя класса с помощью строки?Можно ли получить имя класса, используя его имя, сохраненное в строке в PHP?

Если предположить, что у меня есть класс с именем «Myclass», мне нужно что-то вроде:

'Myclass'::class 
+0

Все данные с вашего ввода будут выглядеть именно так? – vitozev

+0

Я не получаю, какой ввод? – naneri

+0

@naneri вы хотите использовать его так: '$ dynamic_name_of_the_class :: class'? –

ответ

1

Я не совсем ясно, что использовать нужно иметь для ::class против строки. Простой факт заключается в том, что если это сработает, оно просто выведет ту же строку, что и у вас. т.е. в вашем примере 'MyClass'::class выводит строку MyClass.

Возможно, вы пытаетесь создать строку, которая просто содержит имя класса, и вы пытаетесь разрешить пространство имен? Это не сработает. Но вы можете получить текущее пространство имен с помощью __NAMESPACE__ зарезервированного слова:

namespace foo\bar; 
echo __NAMESPACE__; //will output 'foo\bar' 

Вы можете использовать это в сочетании со строкой Classname построить полностью квалифицированное имя класса для текущего пространства имен.

Если вы хотите получить имя класса из другого пространства имен, вам необходимо заранее знать пространство имен; без пространства имен PHP не сможет найти класс вообще.