PASO DE PARÁMETROS VARIABLE A UNA FUNCIÓN EN PHP

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);