Ehi, stavo lavorando con una funzione PHP che accetta più argomenti e li formatta. Attualmente, sto lavorando con qualcosa di simile:PHP ottiene tutti gli argomenti come matrice?
function foo($a1 = null, $a2 = null, $a3 = null, $a4 = null){
if ($a1 !== null) doSomethingWith($a1, 1);
if ($a2 !== null) doSomethingWith($a2, 2);
if ($a3 !== null) doSomethingWith($a3, 3);
if ($a4 !== null) doSomethingWith($a4, 4);
}
ma mi chiedevo se posso usare una soluzione come questa:
function foo(params $args){
for ($i = 0; $i < count($args); $i++)
doSomethingWith($args[$i], $i + 1);
}
Ma ancora richiamare la funzione allo stesso modo, simile al parola chiave params in C# o array di argomenti in JavaScript.
Uno Gotcha con func_get_args che vale la pena sottolineare; non puoi passarlo a un'altra chiamata di funzione. – Rob
@Rob È possibile se si va '$ args = func_get_args()' e quindi 'call_user_func_array ($ func, $ args)' – alex
func_get_args() restituisce solo i valori di quei parametri che sono stati PASSATI alla chiamata della funzione, non tutti i parametri definiti nella definizione della funzione. –