ホームページ  >  記事  >  バックエンド開発  >  API データにアクセスする際の「注意: 非オブジェクトのプロパティを取得しようとしています」エラーを修正するにはどうすればよいですか?

API データにアクセスする際の「注意: 非オブジェクトのプロパティを取得しようとしています」エラーを修正するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-01 04:55:27396ブラウズ

How to Fix the

「通知: 非オブジェクトのプロパティを取得しようとしています」エラー: 洞察と解決策

次の API からデータを取得しようとしたとき「http://api.convoytrucking.net/api.php?api_key=public&show=player&player_name=Mick_Gibson」で、次のコードを使用すると、「 Notice: Trying to get property of non-object (非オブジェクトのプロパティを取得しようとしています)」エラーが発生する可能性があります:

<?  
$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 は 1 つの要素を持つ配列であり、さまざまなプレイヤー データを含むオブジェクトであることがわかります。 player_name プロパティにアクセスするには、まず配列インデックス (この場合は 0) を指定し、次に結果のオブジェクトの目的のプロパティにアクセスする必要があります。

コードを次のように更新すると、正しく取得されます。 player_name プロパティ:

echo $pjs[0]->player_name;

以上がAPI データにアクセスする際の「注意: 非オブジェクトのプロパティを取得しようとしています」エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。