"Notis: Mencuba Mendapatkan Harta Bukan Objek" Ralat: Cerapan dan Penyelesaian
Apabila cuba mendapatkan data daripada API di "http://api.convoytrucking.net/api.php?api_key=public&show=player&player_name=Mick_Gibson," anda mungkin menghadapi ralat "Notis: Mencuba mendapatkan sifat bukan objek" apabila menggunakan kod berikut:
<? $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'}); ?>
Punca Ralat:
Ralat ini berlaku kerana $pjs ialah tatasusunan yang mengandungi objek tunggal, bukannya objek yang dijangkakan itu sendiri. Baris 9 kod anda cuba mengakses sifat (nama_pemain) $pjs secara langsung, iaitu tatasusunan, bukan objek.
Penyelesaian:
Untuk menyelesaikan masalah ini isu, mula-mula akses elemen tatasusunan yang mengandungi objek ($pjs[0]) dan kemudian akses atribut objek yang diingini:
echo $pjs[0]->player_name;
Penjelasan Terperinci:
Hasil var_dump($pjs) mendedahkan bahawa $pjs ialah tatasusunan dengan satu elemen, iaitu objek yang mengandungi pelbagai data pemain. Untuk mengakses sifat player_name, anda perlu terlebih dahulu menentukan indeks tatasusunan (dalam kes ini, 0) dan kemudian mengakses sifat yang dikehendaki bagi objek yang terhasil.
Dengan mengemas kini kod anda kepada yang berikut, anda akan mendapatkan semula dengan betul harta pemain_nama:
echo $pjs[0]->player_name;
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'Notis: Cuba Mendapatkan Harta Bukan Objek\' Semasa Mengakses Data API?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!