Ответ 1
Вам нужно использовать call_user_func_array
call_user_func_array( array($method, $function), $params);
У меня есть массив параметров:
$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/...
Вам нужно использовать call_user_func_array
call_user_func_array( array($method, $function), $params);
Начиная с PHP 5.6 вы можете использовать распаковку аргументов:
function add($a, $b, $c) {
return $a + $b + $c;
}
$numbers = [1, 2, 3];
echo add(...$numbers);