PHP ottiene tutti gli argomenti come arrays?

Ehi, stavo lavorando con una function PHP che prende più argomenti e li formatta. Attualmente sto lavorando con qualcosa del genere:

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 stavo chiedendo se posso usare una soluzione come questa:

 function foo(params $args){ for ($i = 0; $i < count($args); $i++) doSomethingWith($args[$i], $i + 1); } 

Ma invoca ancora la function allo stesso modo, simile alla parola chiave params in C # o alla matrix di argomenti in JavaScript.

func_get_args restituisce una matrix con tutti gli argomenti della function corrente.

O come da PHP 7.1 ora puoi usare un suggerimento tipo chiamato iterable

 function f(iterable $values) { foreach ($values as $val) { // awesome stuff } } 

Inoltre, può essere usato al posto di Traversable quando si itera usando un'interface e può essere usato come un generatore che produce anche valori.
Documentazione

Se usi PHP 5.6+, ora puoi fare questo:

 <?php function sum(...$numbers) { $acc = 0; foreach ($numbers as $n) { $acc += $n; } return $acc; } echo sum(1, 2, 3, 4); ?> 

fonte: http://php.net/manual/en/functions.arguments.php#functions.variable-arg-list