【问题标题】:Fatal error: Cannot use object of type stdClass as array in CodeIgniter致命错误:不能在 CodeIgniter 中使用 stdClass 类型的对象作为数组
【发布时间】:2023-03-12 13:09:01
【问题描述】:

我在第 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>';
}
}
}

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

【问题讨论】:

  • 此错误意味着您将 stdClass 对象视为数组。 (ta-da!)显然是$valueprint_r($value) 看看你有什么。
  • 它仍然无法正常工作.. :( 但谢谢.. :))
  • 你能给出你的php文件的第37行吗?

标签: php codeigniter


【解决方案1】:

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

由于我不知道 $matkul 里面有哪些元素以及它们是如何定位的,我只能猜测问题是由于在 $value 中使用 [] 引起的。例如尝试替换

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

还有kmk & mk。它可能会起作用。

要自己调试,必须使用:

print_r($matkul) or print_r($value)

然后,在打印结果中观察元素在 $matlkul 或 $value 中的情况;无论是作为对象还是作为数组。如果 $value 恰好是一个对象,那么你必须使用 -> 表示学期、kmk、mk;不是 [ ]。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多