Oye, estaba trabajando con una función PHP que toma múltiples argumentos y los formatea. Actualmente, estoy trabajando con algo como esto:PHP obtener todos los argumentos como una matriz?
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);
}
Pero me preguntaba si puedo utilizar una solución como esta:
function foo(params $args){
for ($i = 0; $i < count($args); $i++)
doSomethingWith($args[$i], $i + 1);
}
Pero aún así invocar la función de la misma manera, similar a la la palabra clave params en C# o la matriz de argumentos en JavaScript.
Uno de gotcha con func_get_args que la pena señalar; no puede pasarlo a otra llamada de función. – Rob
@Rob Puedes si vas '$ args = func_get_args()' y luego 'call_user_func_array ($ func, $ args)' – alex
func_get_args() solo devuelve los valores de los parámetros que se PASARON a la llamada de función, no todos los parámetros definidos en la definición de la función. –