JSON Numbers: Strings or Numbers?
Fungsi json_encode PHP dikenali kerana kecenderungannya untuk mengekod nombor sebagai rentetan, yang membawa kepada tingkah laku yang tidak dijangka dalam JavaScript. Sebagai contoh, tatasusunan { "id": "3", ... } ditafsirkan sebagai rentetan dalam JavaScript, menyebabkan operasi berangka gagal.
Untuk menangani isu ini, PHP menyediakan penyelesaian: JSON_NUMERIC_CHECK bendera. Diperkenalkan dalam PHP 5.3.3, bendera ini memastikan bahawa nombor ditukar secara automatik kepada perwakilan JSON yang sesuai.
Pertimbangkan penggunaan berikut:
$arr = array( 'row_id' => '1', 'name' => 'George' ); echo json_encode( $arr, JSON_NUMERIC_CHECK );
Ini akan menghasilkan { "row_id":1 ,"name":"George" }, di mana nombor seperti "1" dianggap dengan betul sebagai angka nilai.
Dengan menggunakan bendera JSON_NUMERIC_CHECK, pembangun boleh menghalang json_encode daripada salah tafsir nombor dan memastikan keserasian dengan operasi berangka JavaScript.
Atas ialah kandungan terperinci Nombor JSON dalam PHP: Rentetan atau Nombor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!