可变参数之后的可选命名参数

问题描述 投票:0回答:1

PHP 7.x
中,我有一些函数可以获取参数数组,然后获取一些标志。

一个简化的示例:

<?php
    function sum($param, $min=0, $max=100)
    {
        $sum = 0;
        foreach ($param as $value)
            if ($value>=$min && $value<=$max)
                $sum += $value;
        return $sum;
    }

    echo sum([100, 10, 4], 0, 50);
?>

现在在

PHP 8.1
中,我想将函数定义更改为
variadic
(解包数组),并将函数调用更改为
named arguments

所以我将函数定义更改为:

    function sum(...$param, $min=0, $max=100)

以及对此的函数调用:

    echo sum(100, 10, 4, max:50);

但我收到此错误消息:

Fatal error: Only the last parameter can be variadic in test.php on line 2

有什么办法解决吗?

蒂亚

php variadic php-8
1个回答
0
投票

您需要重写订单,如错误所示:

可变参数作为最后一个参数。

function sum($min=0, $max=100, ...$param)
© www.soinside.com 2019 - 2024. All rights reserved.