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

PHP中number_format格式化金额时传入Null参数的弃用警告问题

解决number_format()传入Null的弃用警告

问题详情

  • 文件路径:C:\xampp\htdocs\ksucatalog\application\helpers\nokencode_helper.php
  • 触发行号:118
  • 警告信息:number_format(): 向类型为float的参数#1($num)传入Null已被弃用

问题原因

你定义的money()函数直接将传入的$str参数传给number_format(),但PHP 8.0及以上版本提升了参数类型的严格性,当$str为null时,就会触发这个弃用警告——number_format()的第一个参数要求是float类型,不能传入null。

修复方案

方案1:提前处理null及非数值输入

修改money()函数,先把null转为0,同时确保输入是数值类型:

if (!function_exists('money')) {
    function money($str)
    {
        // 处理null、空值,默认转为0
        $num = $str ?? 0;
        // 确保最终是float类型,非数值也转为0
        $num = is_numeric($num) ? (float)$num : 0;
        return number_format($num, 2, '.', ',');
    }
}

方案2:给参数设置默认值

直接给$str设置默认值0,从根源避免null传入:

if (!function_exists('money')) {
    // 参数默认值设为0,防止null传入
    function money($str = 0)
    {
        $num = is_numeric($str) ? (float)$str : 0;
        return number_format($num, 2, '.', ',');
    }
}

这两种方案都能解决警告问题,同时让money()函数能处理更多异常输入情况,稳定性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:05:21