laravel中到处是这种用法,所以特此研究一下。
参考资料
http://cn.php.net/manual/zh/functions.arguments.php#functions.variable-arg-list
可变数量的参数列表 ¶
PHP 在用户自定义函数中支持可变数量的参数列表。在 PHP 5.6 及以上的版本中,由 ... 语法实现;在 PHP 5.5 及更早版本中,使用函数func_num_args(),func_get_arg(),和 func_get_args() 。
在PHP 5.6及更高版本中,参数列表可能包含...标记,表示该函数接受可变数量的参数。参数将作为数组传递给给定变量
<?php
//声明时使用
function sum(...$numbers) {
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}
//10
echo sum(1, 2, 3, 4);
?>
<?php
//调用时使用
function add($a, $b) {
return $a + $b;
}
//3
echo add(...[1, 2])."\n";
//3
$a = [1, 2];
echo add(...$a);
?>