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

CodeIgniter 3触发内存耗尽错误 自定义money_format函数运行无效应如何解决

问题根源

你遇到的内存耗尽错误是无限递归调用导致的,和CodeIgniter 3框架本身没有关联,问题完全出在你写的自定义money_format函数上:

  • 你自定义的函数命名为money_format,函数内部又直接调用了同名函数,触发了无限递归,程序反复进栈耗尽内存才会报这个错
  • 除此之外你的函数还有多处语法错误:
    • 第3行%number =round((float)$num, $pro);是无效语法,PHP变量前缀应为$而非%,且这行定义的变量后续完全没有用到
    • 函数结尾括号写反,错误写为)},正确应为}
    • 你原本想调用的是PHP原生的money_format函数,但因为你自定义了同名函数,程序会优先调用你写的这个自定义函数,永远碰不到原生函数
修复方案

直接修改自定义函数的名称,避免和PHP原生函数重名即可,修复后的代码参考:

function custom_money_format($num = 0, $pro = 2)
{
    $num = round((float)$num, $pro);
    if($pro == 2) {
        $num = money_format("%!^2n", (float)$num);
    } else {
        $num = money_format("%=*!^.".$pro."n", (float)$num);
    }
    return $num;
}

注意:PHP原生money_format函数在PHP 7.4版本后已被废弃,如果你后续升级PHP版本,建议替换为NumberFormatter类实现金额格式化功能

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:06:03