2014-11-04 7 views
0

Я пытаюсь вызвать метод, в котором часть имени я хочу в переменной. Как я могу это сделать, потому что код, который у меня на данный момент не работает?Передать переменной имя метода в PHP

$actionName = 'Index'; 

// object creating... 
$action = 'action' . $actionName(); 
$object->$action; 

Ошибка:

Fatal error: Call to undefined function index() in ... 

ответ

1

Вы не можете вызывать методы PHP таким образом. Для этого вам нужно использовать call_user_func.

Пример:

call_user_func([$object, 'action' . $actionName]/*,$param1, $param2, $param3*/) 
//   ^Callable      ^Optional parameters 
+0

спасибо человеку) – nowiko

0

Вам нужно добавить() к переменному вызову метода.

$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(); 
Смежные вопросы