phpでjson_encodeとjson_decodeのエラー処理

2371 ワード

phpではjson_encodeとjson_decodeはよく使われる関数で、具体的な使い方は関連ドキュメントを見ることができます.ここでは主にエラー処理について話します.
通常、この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