2016-06-14 88 views
0

我发现了错误不能使用类型stdClass的的对象作为数组“致命错误:在不能使用类型stdClass的的对象作为阵列”上线37这恰好是致命错误:在笨

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

此错误表示您将stdClass对象作为数组处理。 (ta-da!)它显然是'$ value'。 'print_r($ value)'看看你有什么。 –

+0

它仍然没有工作.. :(但是,谢谢你.. :)) – DolphinGirl

+0

你可以给你的PHP文件的第37行吗? –

回答

1

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

因为,我不知道$ matkul里面有什么元素,它们是如何定位的,我只能猜测由于在$ value中使用[]而出现问题。例如尝试更换

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

并与kmk & mk也。它可能工作。

要调试自己,必须使用:

print_r($matkul) or print_r($value) 

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