JSON (JavaScript Object Notation) ialah format pertukaran data yang digunakan secara meluas. Apabila menggunakan fungsi json_encode PHP untuk menukar tatasusunan atau objek PHP kepada JSON, ia menghadapi isu biasa: nombor dikodkan sebagai rentetan. Sebagai contoh, tatasusunan dengan kunci berangka, { "id": "3" }, mungkin dijangkakan, tetapi sebaliknya, json_encode menghasilkan { "id": 3 }. Tingkah laku ini boleh menyebabkan percanggahan apabila JavaScript mentafsir nilai sebagai rentetan, yang membawa kepada operasi berangka yang gagal.
Nasib baik, PHP 5.3 dan versi yang lebih baru menawarkan penyelesaian kepada masalah ini. Dengan menggunakan bendera JSON_NUMERIC_CHECK semasa pengekodan, isu ini boleh diatasi. Bendera ini mencetuskan penukaran automatik nilai angka kepada nombor dalam rentetan JSON yang dikodkan. Untuk menggambarkan, coretan kod di bawah menunjukkan cara memanfaatkan bendera ini:
$arr = array( 'row_id' => '1', 'name' => 'George' ); echo json_encode( $arr, JSON_NUMERIC_CHECK ); // {"row_id":1,"name":"George"}
Seperti yang anda boleh perhatikan, kekunci berangka kini dikodkan dengan betul sebagai nombor, memastikan keserasian dengan operasi berangka dalam JavaScript. Kaedah mudah tetapi berkesan ini memperkasakan pembangun untuk mengurus proses pengekodan dengan berkesan dan mengelakkan penukaran rentetan nombor yang tidak diingini dalam JSON, meningkatkan kesalingoperasian aplikasi mereka.
Atas ialah kandungan terperinci Mengapakah `json_encode` PHP Menganggap Nombor sebagai Rentetan dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!