Я пытаюсь вызвать метод, где часть имени я хочу в переменной. Как я могу это сделать, потому что код, который у меня сейчас не работает?
$actionName = 'Index';
// object creating...
$action = 'action' . $actionName();
$object->$action;
Ошибка:
Fatal error: Call to undefined function index() in ...
Вы не можете вызывать методы PHP таким образом. Вам нужно использовать call_user_func
сделать это.
Пример:
call_user_func([$object, 'action' . $actionName]/*,$param1, $param2, $param3*/)
// ^ Callable ^ Optional parameters
Вам необходимо добавить () к вызовам переменных методов.
$actionName = 'Index';
$object->{"action" . $actionName}();
// or
$action = 'action' . $actionName;
$object->$action();
Пример:
class test { function sts() { return "hey"; } }
$tst = new test;
$met = "sts";
echo $tst->$met();