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

报错Cannot access offset of type string on string的原因排查

问题排查:Cannot access offset of type string on string 报错

报错发生在以下代码行:

<img class="card-img-top" src="<?php echo base_url('uploads/products_images/'.$row['prod_image'] ); ?>" alt="">

错误核心原因

$row是字符串类型,但你用了数组的访问方式($row['prod_image']),PHP不允许对字符串使用数组偏移语法,因此抛出该错误。

可能的问题点及解决办法

  • 控制器传递的$products格式错误
    检查控制器中查询产品的代码,确保返回的是二维关联数组(每个元素对应一个产品的数组)。比如在CodeIgniter中,要使用$this->db->get()->result_array(),而不是row_array()(返回单条记录数组)或其他返回字符串的方法。

  • $products中存在非数组元素
    在循环内增加类型校验,跳过非数组的无效元素:

    foreach($products as $row){
        if(!is_array($row)) continue;
        // 原有产品卡片代码
    }
    
  • 空值判断逻辑不严谨
    原代码的!empty($products)无法区分数组和非数组的非空值,修改判断条件确保$products是数组且非空:

    if(is_array($products) && !empty($products)){ 
        foreach($products as $row){
            // 原有代码
        }
    }
    

调试建议

在循环前添加调试代码,查看$products的实际结构:

var_dump($products); die;

通过打印结果可以直接确认$products的类型和内容,快速定位问题根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:15:40