Как получить параметры одним массивом при передаче аргументов в виде массива в call_user_func_array()

Я отправляю параметры в виде массива во втором аргументе, но не могу получить как один массив в моей принимающей функции, я могу получить только одно значение как одну переменную, поэтому, если у меня есть 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;
  }

Просто оберните аргументы еще одним массивом: call_user_func_array([$this->controller, $this->method], [$this->params]);

M. Eriksson 02.04.2019 07:26

@MagnusEriksson, ты собираешься ответить или закрыть? Похоже, у вас есть ответ на пост.

mickmackusa 02.04.2019 07:34

Разве вместо этого нельзя использовать call_user_func?

Nigel Ren 02.04.2019 08:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
78
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Простое решение вашей проблемы - просто обернуть аргументы в другой массив:

call_user_func_array([$this->controller, $this->method], [$this->params]);

Затем он передаст массив в качестве первого аргумента вашему методу.

Другие вопросы по теме