php中函数优雅的传递参数
有时候,由于参数过多,或者要传递的参数位置顺序问题,如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
传入的数组会按顺序被分解成对应的参数