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

CodeIgniter登录后ArgumentCountError及CI_Controller缺失问题求助

修复CodeIgniter登录触发的参数计数错误

问题分析

当前触发的ArgumentCountError是因为PHP 7及以上版本中,系统抛出的Error类异常会直接传递1个参数给异常处理函数,但旧版CodeIgniter的_exception_handler()函数定义要求传入4个参数,导致参数不匹配。

修复步骤

  1. 打开路径C:\xampp\htdocs\public\system\core\Common.php,定位到第470行的_exception_handler()函数。
  2. 修改函数定义,兼容PHP 7+的异常传递方式:
    原函数定义通常为:
    function _exception_handler($severity, $message, $filepath, $line)
    
    将其修改为兼容两种调用方式的版本:
    function _exception_handler($param1, $param2 = null, $param3 = null, $param4 = null)
    {
        // 处理PHP 7+传入的Error/Exception对象
        if ($param1 instanceof \Throwable) {
            $severity = property_exists($param1, 'severity') ? $param1->severity : E_ERROR;
            $message = $param1->getMessage();
            $filepath = $param1->getFile();
            $line = $param1->getLine();
        } else {
            // 保留原CodeIgniter的参数传递逻辑
            $severity = $param1;
            $message = $param2;
            $filepath = $param3;
            $line = $param4;
        }
    
        // 保留原函数内的所有处理逻辑,不要修改这部分
        // ...(原函数代码)
    }
    
  3. 保存文件后重新测试登录,确认错误不再出现。

关联问题说明

之前遇到的CI_Controller未找到问题解决后触发此错误,本质是旧版CodeIgniter对PHP 7+的错误处理机制兼容不足,修改异常处理函数即可完成适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 14:03:24