Thursday, October 23, 2025
HomeLanguagesVariable-length argument list in PHP

Variable-length argument list in PHP

Given a set of arguments whose length is unknown at present, we will see how a function can work with these unknown numbers of arguments whose quantity will vary depending on the requirement.

We will take up each word one by one to deeply understand the topic we are dealing with.

  • Variable: It is the number of arguments keep changing.
  • Length: It refers to the number of arguments.
  • Argument: It refers input passed to a function.

Now, the point of interest lies at the word list, all the arguments passed at its call will go the function as an array. The values will be retrieved like they are being from an array.

Accessing Variable Arguments Method: In this, the function is made to accept variable arguments and work accordingly. The variable which has to have multiple numbers of arguments is declared with “…”(triple dots).

  • Example:




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

    
    
  • Output:
    10 
    12

Providing Variable Arguments Method: You can also use “…”(triple dots) when calling functions to unpack an array or Traversable variable or literal into the argument list.

  • Example:




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

    
    
  • Output:
    3
    3
    

Type hinted Variable Arguments Method: It is also possible to add a type of hint before the … token. If this is present, then all arguments captured by … must be objects of the hinted class.

  • Example:




    <?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';
        
      
    ?>

    
    
  • Output:
     3 days
RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS