首頁  >  文章  >  後端開發  >  如何修復存取 API 資料時出現「注意:嘗試取得非物件的屬性」錯誤?

如何修復存取 API 資料時出現「注意:嘗試取得非物件的屬性」錯誤?

DDD
DDD原創
2024-11-01 04:55:27399瀏覽

How to Fix the

「注意:嘗試取得非物件的屬性」錯誤:洞察與解決

嘗試從API 擷取資料時「http:// api.convoytrucking.net/api.php?api_key=public&show=player&player_name=Mick_Gibson”,使用以下程式碼時可能會遇到“注意:嘗試取得非物件的屬性”錯誤:

<?  
$js = file_get_contents('http://api.convoytrucking.net/api.php?api_key=public&show=player&player_name=Mick_Gibson');
$pjs = json_decode($js);
var_dump($pjs->{'player_name'});
?>

錯誤原因:

出現此錯誤是因為$pjs 是包含單一物件的數組,而不是預期的物件本身。程式碼的第 9 行嘗試直接存取 $pjs 的屬性 (player_name),該屬性是一個數組,而不是一個物件。

解決方案:

解決此問題問題,首先存取包含物件($pjs[0])的陣列元素,然後存取所需的物件屬性:

echo $pjs[0]->player_name;

詳細說明:

var_dump($pjs)的結果顯示$pjs是一個只有單一元素的數組,它是一個包含各種玩家資料的對象。要存取player_name屬性,您首先需要指定陣列索引(在本例中為0),然後存取結果物件的所需屬性。

透過將程式碼更新為以下內容,您將正確擷取player_name 屬性:

echo $pjs[0]->player_name;

以上是如何修復存取 API 資料時出現「注意:嘗試取得非物件的屬性」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn