Я не уверен, что вы подразумеваете под «ручками возможного существования методов и их призвание с соответствующими переменными», но вы можете быть после call_user_func_array
:
call_user_func_array(
array($myArray[0], $myArray[1]),
array($myArray[2])
);
Если вы хотите, чтобы сделать это для конкретного примера, который вы создали с помощью $controller = new $myArray(0)
, замените $myArray[0]
на $controller
, например
$controller = new $myArray(0);
call_user_func_array(
array($controller, $myArray[1]),
array($myArray[2])
);
или пройти new $myArray[0]
если вы не заботиться о случае потери после вызова
call_user_func_array(
array(new $myArray[0], $myArray[1]),
array($myArray[2])
);
В противном случае вы получите уведомление E_STRICT
и не может ссылаться $this
в любой myMethod
есть. Также см. PHP manual on possible callback formats.
Для проверки метода и класса на самом деле существует, вы можете использовать
Пример:
if (method_exists($myArray[0], $myArray[1])) {
call_user_func_array(*/ … */)
}
Просьба уточнить ваши Ques если есть что-то еще. On a sidenote, this was probably answered before, но поскольку я не уверен, в чем вопрос, я также не уверен, кого из них выбрать.
это работает только со статическими методами, иначе вам нужен экземпляр класса –
@kemp не верен, но добавил разъяснение. Я так думаю. – Gordon
Ты прав, мой плохой –