Lista de argumentos de longitud variable en PHP

Dado un conjunto de argumentos cuya longitud se desconoce en la actualidad, veremos cómo una función puede trabajar con estos números desconocidos de argumentos cuya cantidad variará según el requisito.

Retomaremos cada palabra una por una para entender profundamente el tema que estamos tratando.

  • Variable: Es el número de argumentos que van cambiando.
  • Longitud: Se refiere al número de argumentos.
  • Argumento: Hace referencia a la entrada pasada a una función.

Ahora, el punto de interés se encuentra en la lista de palabras, todos los argumentos pasados ​​en su llamada irán a la función como una array. Los valores se recuperarán como si fueran de una array.

Método de Acceso a Argumentos Variables: En esto, la función está hecha para aceptar argumentos variables y trabajar en consecuencia. La variable que tiene que tener múltiples números de argumentos se declara con “…” (puntos triples).

  • Ejemplo:

    <?php
    function sum(...$numbers) {
      $res = 0;
      foreach($numbers as $n) {
          $res+=$n;
        }
      return $res;
    }
      
    echo(sum(1,2,3,4)."\n");
    echo(sum(5,6,1));
    ?>
  • Producción:
    10 
    12

Método de proporcionar argumentos variables: también puede usar «…» (puntos triples) al llamar a funciones para desempaquetar una array o variable transversal o literal en la lista de argumentos.

  • Ejemplo:

    <?php
    function add($a,$b) {
      return $a + $b ;
    }
    echo add(...[1, 2])."\n";
      
    $a = [1, 2];
    echo add(...$a);
    ?>
  • Producción:
    3
    3
    

Escriba el método de argumentos variables sugeridos: también es posible agregar un tipo de sugerencia antes del … token. Si esto está presente, entonces todos los argumentos capturados por… deben ser objetos de la clase sugerida.

  • Ejemplo:

    <?php
    function total_intervals($unit, DateInterval ...$intervals) {
        $time = 0;
        foreach ($intervals as $interval) {
            $time += $interval->$unit;
        }
        return $time;
    }
      
    $a = new DateInterval('P1D');
    $b = new DateInterval('P2D');
    echo total_intervals('d', $a, $b).' days';
        
      
    ?>
  • Producción:
     3 days

Publicación traducida automáticamente

Artículo escrito por vanshikagoyal43 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *