2016-06-14 72 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;不[]。