Untuk menjawab pertanyaan sebenarnya:
Mengapa PHP mengubah Objek JSON menjadi kelas?
Lihatlah lebih dekat pada output dari JSON yang dikodekan, saya telah memperpanjang contoh yang diberikan OP sedikit:
$array = array(
'stuff' => 'things',
'things' => array(
'controller', 'playing card', 'newspaper', 'sand paper', 'monitor', 'tree'
)
);
$arrayEncoded = json_encode($array);
echo $arrayEncoded;
//prints - {"stuff":"things","things":["controller","playing card","newspaper","sand paper","monitor","tree"]}
Format JSON diturunkan dari standar yang sama dengan JavaScript ( Standar Bahasa Pemrograman ECMAScript ) dan jika Anda akan melihat formatnya seperti JavaScript. Ini adalah objek JSON ( {}
= objek ) yang memiliki properti "barang" dengan nilai "hal" dan memiliki properti "benda" dengan nilainya berupa array string ( []
= array ).
JSON (sebagai JavaScript) tidak mengenal array asosiatif hanya array yang diindeks. Jadi, ketika JSON mengenkode array asosiatif PHP, ini akan menghasilkan string JSON yang berisi array ini sebagai "objek".
Sekarang kami mendekode JSON lagi menggunakan json_decode($arrayEncoded)
. Fungsi decode tidak tahu dari mana string JSON ini berasal (array PHP) sehingga decoding menjadi objek yang tidak diketahui, yaitu stdClass
dalam PHP. Seperti yang akan Anda lihat, larik string "things" AKAN didekode menjadi larik PHP terindeks.
Lihat juga:
Terima kasih kepada https://www.randomlists.com/things untuk 'hal-hal'