ryoakg
5/26/2016 - 8:27 AM

variable-arguments.php

<?php
// PHP 5.5 or later
function f(...$args){
    return $args;
}

f(1,2,3);
// array(
//   0 => 1,
//   1 => 2,
//   2 => 3
// )


// before PHP 5.5
function g(){
    return func_get_args();
}
g(1,2,3);
// array(
//   0 => 1,
//   1 => 2,
//   2 => 3
// )

function g1(){
    return func_num_args();
}
g1(1);                          // 1
g1(1,1);                        // 2
g1(1,1,1);                      // 3

function g2(){
    return [func_get_arg(0),func_get_arg(1),func_get_arg(2)];
}

g2(1);
// Warning: func_get_arg():  Argument 1 not passed to function ...
// Warning: func_get_arg():  Argument 2 not passed to function ...
// array(
//   0 => 1,
//   1 => false,
//   2 => false
// )

g2(1,2,3);
// array(
//   0 => 1,
//   1 => 2,
//   2 => 3
// )