Se você tem seus argumentos em uma matriz, pode se interessar pela call_user_func_array
função.
Se o número de argumentos que você deseja passar depende do comprimento de um array, isso provavelmente significa que você pode empacotá-los em um array - e usar esse como o segundo parâmetro de call_user_func_array
.
Os elementos desse array que você passar serão recebidos por sua função como parâmetros distintos.
Por exemplo, se você tem esta função:
function test() {
var_dump(func_num_args());
var_dump(func_get_args());
}
Você pode empacotar seus parâmetros em uma matriz, assim:
$params = array(
10,
'glop',
'test',
);
E, então, chame a função:
call_user_func_array('test', $params);
Este código terá como resultado:
int 3
array
0 => int 10
1 => string 'glop' (length=4)
2 => string 'test' (length=4)
ou seja, 3 parâmetros; exatamente como iof a função era chamada desta forma:
test(10, 'glop', 'test');