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