ホームページ >バックエンド開発 >PHPチュートリアル >PHP の「json_encode」が数値を文字列に変換するのはなぜですか?それを修正するにはどうすればよいですか?

PHP の「json_encode」が数値を文字列に変換するのはなぜですか?それを修正するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-30 19:12:15502ブラウズ

Why Does PHP's `json_encode` Convert Numbers to Strings, and How Can I Fix It?

JSON エンコードの問題: PHP json_encode 数値を文字列に変換する

PHP の json_encode 関数で、数値が次のようにエンコードされるという問題が発生します。 JSON エンコード プロセス中の文字列。その結果、JavaScript はこれらのエンコードされた文字列に遭遇すると、そのように解釈し、数値演算でエラーが発生します。例:

array('id' => 3)

次のようにエンコードされます:

{ ["id": "3", ...)

JavaScript がこの「id」プロパティにアクセスすると、文字列として解釈され、数値計算でエラーが発生します。

解決策: 文字列を防止するエンコーディング

json_encode が数値を文字列に変換しないようにするための解決策は、PHP バージョン 5.3.3 以降に存在します。

$arr = array( 'row_id' => '1', 'name' => 'George' );
echo json_encode( $arr, JSON_NUMERIC_CHECK ); 

JSON_NUMERIC_CHECK フラグを指定すると、数値は自動的に変換されます。 JSONエンコード中に数値型に変換されるprocess:

{"row_id":1,"name":"George"}

これにより、JavaScript が値を数値として正しく識別して操作できるようになります。

以上がPHP の「json_encode」が数値を文字列に変換するのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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