You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 8.1可变参数后用命名参数报错,求解决方法

问题解决办法

错误原因

PHP语法明确规定:可变参数(...$param)必须是函数的最后一个参数。你将可变参数放在$min、$max之前,违反了这个规则,因此触发致命错误。

正确实现方案

调整参数顺序,将可选参数$min、$max前置,可变参数放在最后,同时结合命名参数调用:

函数定义

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

调用方式

通过命名参数指定max(或min),后续直接传入数值参数:

echo sum(max:50, 100, 10, 4); // 输出结果:14

如果需要同时指定min和max:

echo sum(min:10, max:50, 100, 10, 4); // 输出结果:14

这种写法既满足了可变参数的需求(无需打包成数组,直接传多个数值),又能通过命名参数灵活控制可选参数,完全符合PHP 8.1的语法规范。

内容的提问来源于stack exchange,提问作者safineh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:25:15