【问题标题】:Unable to access data from array inside foreach loop - Codeigniter无法从 foreach 循环内的数组访问数据 - Codeigniter
【发布时间】:2022-01-14 01:19:00
【问题描述】:

我的数据库有 2 行值:Test2 campaign & premium dove

查看页面

foreach ($estedit as $estrow) { 
                 //print_r($estrow);
                 echo $estrow->name;
                              }

上面的代码在底部显示了这两个值,如下图所示,但它显示错误Trying to get property 'name' of non-object

错误截图:

https://i.stack.imgur.com/g7wtz.png

foreach 循环内的print_r($estrow); 显示以下给定数据:

stdClass Object ( [est_id] => 3 [name] => Test2 campaign ) stdClass Object ( [est_id] => 1 [name] => premium dove ).

$estrow->name 访问name 字段会显示错误Illegal string offset 'name'。 我究竟做错了什么? 我如何在这里访问name 字段?

控制器

 $estedit[] = '';

                    foreach ($est_id as $item) {

                        $estedit[] = $this->Report->get_estedit($item);

                        $estlineedit[] = $this->Report->get_estline_edit($item);
                    }
                    $data['estedit'] = $estedit;
                    $data['estlineedit'] = $estlineedit;
                    $data['date'] = $date;
                    $this->load->view('reports/download_report_view', $data);

【问题讨论】:

  • 我相信你在 foreach 循环中的某个地方重新分配了 $estedit
  • @Anton No. 我没有
  • @Anton 查看更新问题正文。我已经添加了我的控制器代码部分,从中传递这些数据以查看
  • 如果它无法访问它们,那么它首先会显示您所追求的值是没有意义的。 "print_r($estrow); 在 foreach 循环内显示以下给定数据" - 好的,但这并不一定意味着错误来自相同的循环迭代,您在其中得到这个调试输出。 print_r(null)print_r(false) 例如导致绝对没有可见的输出 - 所以如果你在 $estedit 中有比你想象的更多的项目,其中一个是 null 或 false,那绝对可以解释你所看到的。
  • 使用var_dump而不是print_r,这是一个更好的调试工具。并使用它来检查 $estedit 包含的内容,而不是试图找出仅在循环内部发生的事情。

标签: php arrays codeigniter codeigniter-3 arrayobject


【解决方案1】:

使用这个:

$estedit = array(); 

或者这个:

$estedit = []; 

代替:

$estedit[] = '';

【讨论】:

    【解决方案2】:

    你将空字符串设置为$estedit的第一个元素

     $estedit[] = '';
    

    看起来像你想要的

     $estedit = [];
    

    改为

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-05
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 2013-01-04
      • 1970-01-01
      • 2017-08-20
      • 1970-01-01
      相关资源
      最近更新 更多