Вот мой код:Как использовать переменную как имя метода объекта?
$method_name = 'mymethod()';
$obj = new Myclass();
$obj->$method_name;
Как вы видите, я использовал $method_name
как имя метода. Но он бросает это сообщение об ошибке:
Неопределенные свойство: приложение \ Classes \ Myclass :: $ MyMethod()
Как я могу это исправить?
Как PHP должен знать, что вы хотите вызвать метод, а не доступ к свойству, называемому «mymethod()»? – deceze
@deceze В конце есть две круглые скобки. Поэтому очевидно, что это метод. – stack
Глядя на это: '$ obj -> $ method_name', это совсем не очевидно. На самом деле было бы совершенно безумным, если бы PHP решил, является ли '$ obj -> $ method_name' доступ к свойствам или вызовом метода на основе содержимого строки этой переменной. – deceze