PHP 在用户自定义函数中支持可变数量的参数列表。由 ... 语法实现。
注意: 还可以使用以下函数来获取可变参数 func_num_args()、 func_get_arg() 和 func_get_args(),不建议使用此方式,请使用 ... 来替代。
包含 ... 的参数,会转换为指定参数变量的一个数组,见以下示例:
示例:使用 ... 来访问变量参数<?php
function sum(...$numbers) {
$acc = 0;
foreach ($numbers as $n) {
$acc += $n;
}
return $acc;
}
echo sum(1, 2, 3, 4);
?>
上例会输出:10
也可以使用 ... 语法来传递 array 做为参数到函数中:
示例:使用 ... 来传递参数<?php
function add($a, $b) {
return $a + $b;
}
echo add(...[1, 2])."\n";
$a = [1, 2];
echo add(...$a);
?>
上例会输出:3
3
你可以在 ... 前指定正常的位置参数。在这种情况下,只有不符合位置参数的尾部参数才会被添加到 ... 生成的数组中。
你也可以在 ... 标记前添加一个 类型声明。如果存在这种情况,那么 ... 捕获的所有参数必须是提示类的对象。