phpでjson_encodeとjson_decodeのエラー処理
2371 ワード
phpではjson_encodeとjson_decodeはよく使われる関数で、具体的な使い方は関連ドキュメントを見ることができます.ここでは主にエラー処理について話します.
通常、この2つの方法を使用している間は、エラー処理にあまり注意していない可能性があります.入力されたパラメータのフォーマットが正しくないと、エラーが発生することがあります.次はエラー処理の方法です.
json_last_Error-最後に発生したエラーを返します.もしあれば、JSON符号化復号時に最後に発生したエラーを返します.
定数
意味
可用性
エラー発生なし
最大スタック深度に到達
無効または異常のJSON
制御文字エラー、エンコードが間違っている可能性があります
構文エラー
異常なUTF-8文字は、正しく符号化されていないためかもしれません.
PHP 5.3.3
One or more recursive references in the value to be encoded
PHP 5.5.0
One or more
PHP 5.5.0
指定したタイプで、値はエンコードできません.
PHP 5.5.0
指定した属性名はエンコードできません.
PHP 7.0.0
奇形のUTF-16文字は、文字コードが正しくない可能性があります.
PHP 7.0.0
php公式リファレンス:https://secure.php.net/manual/zh/function.json-last-error.php
通常、この2つの方法を使用している間は、エラー処理にあまり注意していない可能性があります.入力されたパラメータのフォーマットが正しくないと、エラーが発生することがあります.次はエラー処理の方法です.
json_last_Error-最後に発生したエラーを返します.もしあれば、JSON符号化復号時に最後に発生したエラーを返します.
int json_last_error ( void )
定数
意味
可用性
JSON_ERROR_NONE
エラー発生なし
JSON_ERROR_DEPTH
最大スタック深度に到達
JSON_ERROR_STATE_MISMATCH
無効または異常のJSON
JSON_ERROR_CTRL_CHAR
制御文字エラー、エンコードが間違っている可能性があります
JSON_ERROR_SYNTAX
構文エラー
JSON_ERROR_UTF8
異常なUTF-8文字は、正しく符号化されていないためかもしれません.
PHP 5.3.3
JSON_ERROR_RECURSION
One or more recursive references in the value to be encoded
PHP 5.5.0
JSON_ERROR_INF_OR_NAN
One or more
NAN
or INF
values in the value to be encoded PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE
指定したタイプで、値はエンコードできません.
PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME
指定した属性名はエンコードできません.
PHP 7.0.0
JSON_ERROR_UTF16
奇形のUTF-16文字は、文字コードが正しくない可能性があります.
PHP 7.0.0
php公式リファレンス:https://secure.php.net/manual/zh/function.json-last-error.php