Blog de Gonzalo

PASO DE PARÁMETROS VARIABLE A UNA FUNCIÓN

Hay ciertas funciones de PHP en las que puedes en el que el número de parámetros a esa función es variable, que peudes pasar uno, dos, hasta n parámetros como la función unset:


//En este ejemplo se le pasa un parámetro

unset($var1);
//En este ejemplo se le pasan dos parámetros
unset($var1,$var2);

Hasta que un día, en el trabajo, tenía tiempo y me dediqué a investigar como se hacía, que podría ser útil en un futuro. Y conseguí averiguarlo, la verdad es que es bastante útil.
Hay tres funciones interesantes:
func_get_arg: Devuelve un elemento de una lista de argumentos.

function foo()
{

//Mostrará 2
echo "El segundo argumento es: " . func_get_arg(1) . "
\n";
}
foo (1, 2, 3);

func_num_args: Devuelve el número de argumentos pasados a la función.

function foo()
{

//Mostrará 6
echo "El número de argumentos pasados es: " . func_num_args() . "
\n"; }
foo (1, 2, 3, 4, 5, 6);

func_get_args: Devuelve un array que se compone de una lista de argumentos de función.

function foo()
{

//Mostrará del 1 al 20 uno por uno $numargs = func_num_args();
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++)
{
echo "El argumento $i es: " . $arg_list[$i] . "
\n";
}
}

foo (1, 2, 3, 4, 5, 6,7,....,20);

En PHP 7.4 se puede usar el operador spread

function spreadParameters(...$parameters) {
    printf($parameters);
}

spreadParameters(1);
spreadParameters(1, 2);
spreadParameters(1, 2, 3);
spreadParameters(1, 2, 3, 4);
spreadParameters(1, 2, 3, 4, 5);

Compartir en twitter