php中函数优雅的传递参数

  • Jesse
  • 2016-11-21 14:54:00
  • 3175
​有时候,由于参数过多,或者要传递的参数位置顺序问题,如function('a',null,null,'','','','h') 但是调用的是公共函数,又不能修改,所以可以这样传参:

PHP 在用户自定义函数中支持可变数量的参数列表。在 PHP 5.6 及以上的版本中,由 ... 语法实现;

 

PHP 5.5 及更早版本中,使用函数 func_num_args()func_get_arg(),和 func_get_args()

 

参考php官方文档:可变数量的参数列表

 

1

function funcA(...$args){
    echo "<pre>";
    print_r($args);
}
funcA('a','b','c');


输出:

Array (

    [0] => a

    [1] => b

    [2] => c

)

 

传入的所有参数会转换成一个数组

 

2

function funcB($a,$b,$c,$d,$e){
    echo "a->".$a."<br>";
    echo "b->".$b."<br>";
    echo "c->".$c."<br>";
}

$args = ['AAA','BBB','CCC','DDD','EEE'];
funcB(...$args);

输出:

 

a->AAA

b->BBB

c->CCC

 

传入的数组会按顺序被分解成对应的参数