Я отправляю параметры в виде массива во втором аргументе, но не могу получить как один массив в моей принимающей функции, я могу получить только одно значение как одну переменную, поэтому, если у меня есть 3 параметра, я определяю три переменные в моей принимающей функции.
$this->params[] = 'val1';
$this->params[] = 'val2';
call_user_func_array([$this->controller, $this->method], $this->params);
Я ожидаю массив в $param, но получаю куски, такие как $param $param2
public function index( $params )
{
echo "<pre>";
var_dump($param);
}
public function index( $param1, $param2 )
{
echo $param1;
echo $param2;
}
@MagnusEriksson, ты собираешься ответить или закрыть? Похоже, у вас есть ответ на пост.
Разве вместо этого нельзя использовать call_user_func?






Простое решение вашей проблемы - просто обернуть аргументы в другой массив:
call_user_func_array([$this->controller, $this->method], [$this->params]);
Затем он передаст массив в качестве первого аргумента вашему методу.
Просто оберните аргументы еще одним массивом:
call_user_func_array([$this->controller, $this->method], [$this->params]);