排除PHP 中的「嘗試取得非物件的屬性」錯誤
當嘗試從JSON 端點擷取資料時,您可以遇到“嘗試取得非物件的屬性”錯誤。當您嘗試存取不是物件的變數的屬性時,就會發生這種情況。
在提供的程式碼中,您嘗試從 JSON 回應中檢索 player_name 變數。但是,收到的回應是一個包含單一物件的數組,而不是直接包含一個物件。這可以透過您提供的 var_dump 輸出來確認,該輸出顯示:
array(1) { [0]=> object(stdClass)#52 {...} }
要解決此錯誤,您需要先存取陣列元素(它是物件),然後存取其屬性。這是修正後的程式碼:
$js = file_get_contents('http://api.convoytrucking.net/api.php?api_key=public&show=player&player_name=Mick_Gibson'); $pjs = json_decode($js); echo $pjs[0]->player_name; // Correctly access the object attribute
此修改後的程式碼成功檢索了player_name變量,而沒有出現「嘗試取得非物件的屬性」錯誤。請記住仔細檢查 JSON 回應的結構,以確保您正確存取屬性。
以上是為什麼在 PHP 中使用 JSON 時會出現「嘗試取得非物件的屬性」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!