Как передать массив в качестве нескольких параметров для функции? - PullRequest
12 голосов
/ 27 апреля 2010

У меня есть массив параметров:

$params[1] = 'param1';
$params[2] = 'param2';
$params[3] = 'param3';
...
$params[N] = 'paramN';

У меня есть вызывающая сторона для различных функций:

$method->$function( $params );

Как я могу разобрать массив $ params, чтобы множественные (и неограниченные) параметры могли быть переданы любой функции:

$method->$function( $params[1], $params[2], ..., $params[N] );

Идея состоит в том, чтобы использовать переписывание URL следующим образом:

http://domain.com/class/method/parameter/parameter/parameter/...

Ответы [ 2 ]

18 голосов
/ 27 апреля 2010

Вам нужно использовать call_user_func_array

call_user_func_array( array($method, $function), $params);
1 голос
/ 04 февраля 2019

Начиная с PHP 5.6 вы можете использовать распаковка аргументов :

function add($a, $b, $c) {
    return $a + $b + $c;
}

$numbers = [1, 2, 3];
echo add(...$numbers);
...