Si tiene sus argumentos en una matriz, es posible que le interese la call_user_func_array
función.
Si la cantidad de argumentos que desea pasar depende de la longitud de una matriz, probablemente signifique que puede empaquetarlos en una matriz ellos mismos, y usar ese para el segundo parámetro de call_user_func_array
.
Los elementos de esa matriz que pase serán recibidos por su función como parámetros distintos.
Por ejemplo, si tiene esta función:
function test() {
var_dump(func_num_args());
var_dump(func_get_args());
}
Puede empaquetar sus parámetros en una matriz, como esta:
$params = array(
10,
'glop',
'test',
);
Y, luego, llame a la función:
call_user_func_array('test', $params);
Este código será el resultado:
int 3
array
0 => int 10
1 => string 'glop' (length=4)
2 => string 'test' (length=4)
es decir, 3 parámetros; exactamente como iof la función se llamó de esta manera:
test(10, 'glop', 'test');