知识背景:
类似于 ...$args 的用法在PHP手册中叫: 可变数量的参数列表
代码举例:
function sum(...$input)
{
$total = 0;
array_walk($input, function($v)use(&$total){
$total += $v;
});
return $total;
}
function multiple($arg1, $arg2, $arg3)
{
return $arg1 * $arg2 * $arg3;
}
echo sum(1,2,3,4,5) . PHP_EOL; //15
echo multiple(...[1,2,3]) . PHP_EOL; //6
代码解读:
sum(): 因为实参是多个参数,形参是一个参数,所以 ...$input 会将多个实参转换成单个形参,即 $input = [1,2,3,4,5];
multiple():因为实参是单个参数,形参是多个参数,所以 ...$input 会将单个实参转换成对应的多个形参,即:
$arg1 = 1、$arg2 = 2、$arg3 = 3;
使用场景:
我们定义了一个函数,该函数具有如下特征:
1、函数的参数数量不固定,即具有可变数量的参数: function sum($arg1, $arg2, ......., $argN);
2、不同的参数个数代表不同的意义;