我收到错误“致命错误:不能在第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>';
}
}
}
有人知道上面的代码有什么问题吗?或者这个错误意味着什么?
答案 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;不是[]。