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

如何修复「Trying to access array offset on value of type bool」错误?

解决「Trying to access array offset on value of type bool」错误

你的错误出在最后一行list($type,$balance,$pm,$ref)=explode(':',$data[0]);,核心原因是file($filename)没有返回预期的数组,而是返回了布尔值false,直接访问$data[0]相当于对布尔值做数组偏移操作,所以触发报错。

为什么file()会返回false?

  • 文件不存在:拼接后的$filename路径错误,或者对应文件已被删除
  • 权限不足:PHP运行进程没有读取该文件的权限
  • 路径无效:$SESSION_FOLDER或$id为空,导致生成的路径不合法

修复方案

在代码中增加文件状态校验,避免直接对错误结果操作:

global $SESSION_FOLDER;
$filename = $SESSION_FOLDER . '/' . $id;

// 初始化变量避免未定义问题
$type = $balance = $pm = $ref = '';

// 先验证文件是否存在且可读
if (file_exists($filename) && is_readable($filename)) {
    $data = file($filename);
    // 再检查文件是否有内容
    if (!empty($data)) {
        list($type,$balance,$pm,$ref) = explode(':',$data[0]);
    }
}

额外优化点

  • 去掉不必要的ob_start()和ob_end_clean():file()函数不会向输出缓冲写入内容,这两句代码是多余的
  • 检查$SESSION_FOLDER和$id的值:确保拼接后的路径是合法的,比如可以临时加var_dump($filename)确认路径是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 11:42:07