php中三个点...的用法

发布时间:2021/03/03 作者:天马行空 阅读(1380)

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


你可以在 ... 前指定正常的位置参数。在这种情况下,只有不符合位置参数的尾部参数才会被添加到 ... 生成的数组中。

你也可以在 ... 标记前添加一个 类型声明。如果存在这种情况,那么 ... 捕获的所有参数必须是提示类的对象。

关键字php