致命错误:不能在CodeIgniter中使用stdClass类型的对象作为数组

时间:2016-06-14 16:17:52

标签: php codeigniter

我收到错误“致命错误:不能在第37行使用stdClass类型的对象作为数组”,这恰好是

public function getMatkul1(){
$matkul = $this->rest->get('ambilmk', 'json');
foreach ($matkul as $key => $value) {
    if(($value['semester'] % 2 ) == $semester){
    echo '<option value='.$value['kmk'].'>'.$value['mk'].'</option>';
}
}
}

有人知道上面的代码有什么问题吗?或者这个错误意味着什么?

1 个答案:

答案 0 :(得分:1)

当您尝试将PHP对象用作数组时,PHP会显示此错误,即使用[]而不是 - &gt;

因为,我不知道$ matkul中有哪些元素以及它们是如何定位的,我只能猜测由于在$ value中使用[]而产生了问题。例如尝试更换

$value['semester']  with  $value->semester

用kmk&amp; mk也是。它可能会奏效。

要调试自己,必须使用:

print_r($matkul) or print_r($value)

然后,在打印结果中观察元素在$ matlkul或$ value中的含义;无论是作为对象还是作为数组。如果$ value碰巧是一个对象,那么你必须使用 - &gt;学期,kmk,mk;不是[]。