PHP | ¿Qué son los tres puntos antes de los argumentos de una función?

1 minuto de lectura

Avatar de usuario de Salar
Salar

Estaba trabajando con Laravel 5.3 y en una de las funciones encontré este código:

public function handle($request, Closure $next, ...$guards)
{
    $this->authenticate($guards);

    return $next($request);
}

El código viene de \Illuminate\Auth\Middleware\Authenticate::class.

¿Qué son esos 3 puntos antes? $guards ¿variable?

  • wiki.php.net/rfc/argument_unpacking – si alguna vez no está seguro, hay una lista completa de símbolos en stackoverflow.com/questions/3737139/…

    – Qirel

    5 de noviembre de 2016 a las 15:10


Avatar de usuario de Daniel Enache
Daniel Enache

Indica que puede haber un número variable de argumentos.

Cuando se llama a la función con más de 3 argumentos, todos los argumentos después $next se añadirá a la $guards formación.

Puedes leer sobre eso aquí.

  • Voluntad $guards ¿Sigue siendo una matriz si se envían SOLO 3 parámetros?

    – Guión47

    07/03/2018 a las 15:25

  • Acabo de darme cuenta de la última vez que el contestador estuvo disponible (11 de diciembre de 2016 a las 19:52), si alguien más que se cruza puede responder mi comentario anterior, por favor hágalo.

    – Guión47

    7 de marzo de 2018 a las 15:28


  • Confirmado, $guards seguirá siendo una matriz, haga clic en aquí para ver un ejemplo.

    – Guión47

    7 de marzo de 2018 a las 16:47

¿Ha sido útil esta solución?