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

不同PHP版本下出现Trying to access array offset on null错误求助

解决CodeIgniter项目切换PHP版本后仍报数组偏移错误的问题
  • Web服务器未同步PHP版本配置
    你用sudo update-alternatives --set php /usr/bin/php5.6仅切换了CLI环境的PHP版本,但Web服务器(Apache/Nginx)依赖独立的PHP模块或PHP-FPM服务,不会自动同步版本:

    • 若使用Apache:
      1. 禁用当前PHP8.x模块:sudo a2dismod php8.x(将x替换为实际版本,如8.1)
      2. 启用PHP5.6模块:sudo a2enmod php5.6
      3. 重启Apache生效:sudo systemctl restart apache2
    • 若使用Nginx+PHP-FPM:
      1. 确保已安装php5.6-fpm:sudo apt install php5.6-fpm
      2. 编辑Nginx站点配置,将fastcgi_pass指向php5.6-fpm的套接字(通常为unix:/run/php/php5.6-fpm.sock)
      3. 重启相关服务:sudo systemctl restart php5.6-fpm && sudo systemctl restart nginx
  • 验证PHP版本是否真正生效
    在项目根目录创建info.php文件,内容如下:

    <?php phpinfo(); ?>
    

    通过浏览器访问该文件,查看页面顶部的PHP版本信息。如果仍显示8.x,说明Web服务的PHP版本未切换成功,需重新检查上述配置。

  • 排查CodeIgniter核心文件的代码问题
    打开core/Controller.php查看第110行代码,该错误通常是因为尝试访问null值的数组偏移(例如$someNullVar[$key])。在PHP5.x中这类Notice级错误可能默认被屏蔽,但如果项目错误级别设置较高仍会显示。可以给相关变量添加非空判断:

    // 示例修改:原代码
    $value = $_SERVER['HTTP_SOME_HEADER'][0];
    // 修改为
    $value = isset($_SERVER['HTTP_SOME_HEADER']) ? $_SERVER['HTTP_SOME_HEADER'][0] : '';
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:35:25