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

如何修复PHP代码中的'Trying to access array offset on value of type bool'错误?

问题分析与解决

错误原因

这个通知错误的含义是:你试图对一个布尔类型(bool)的值使用数组偏移(即['value']这种数组取值写法),但布尔值并非数组,因此无法执行该操作。

回到你的代码,问题出在$val = get_field_object($field['name'], $id);这一行——当get_field_object找不到对应字段时,会返回布尔值false,而你直接将$val当作数组去读取['value'],就触发了这个错误。

修复方案

你需要先判断$val是否为有效数组,再去访问它的value键。修改后的代码如下:

foreach($ids as $id){
    if (stripos($field['name'], 'label_') !== FALSE) {
        echo '';
    }
    else{
        $val = get_field_object($field['name'], $id);
        // 先验证$val是数组且存在value键
        if (is_array($val) && isset($val['value'])) {
            echo '<td>'.generate_view($field['name'], $val['value']).'</td>';
        } else {
            // 字段不存在时的兜底处理,比如输出空单元格
            echo '<td></td>';
        }
    }
}

额外说明

  • is_array($val):确保$val是数组类型,而非布尔值false
  • isset($val['value']):确保数组中确实存在value键,避免触发“未定义数组索引”的新错误
  • 兜底的echo '<td></td>'可根据需求调整,比如输出提示文本或其他默认内容

内容的提问来源于stack exchange,提问作者Dennis van Gageldonk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 16:22:39