# 定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

次の定数は、json_last_error() が返したり、 JsonException の code に格納されている エラーの型を表します。

`JSON_ERROR_NONE` (int)
  エラーが発生しませんでした。
`JSON_ERROR_DEPTH` (int)
  スタックの深さが最大に達しました。
`JSON_ERROR_STATE_MISMATCH` (int)
  アンダーフローあるいはモードの不一致が発生しました。
`JSON_ERROR_CTRL_CHAR` (int)
  制御文字エラー。おそらくエンコードが間違っています。
`JSON_ERROR_SYNTAX` (int)
  構文エラー。
`JSON_ERROR_UTF8` (int)
  正しくエンコードされていないなど、不正な形式の UTF-8 文字。
`JSON_ERROR_RECURSION` (int)

  json_encode() に渡した配列やオブジェクトに再帰参照が含まれており、エンコードできません。 `JSON_PARTIAL_OUTPUT_ON_ERROR` オプションを指定した場合は、 再帰参照の部分を `null` にエンコードします。

`JSON_ERROR_INF_OR_NAN` (int)
  json_encode() に渡した値の中に `NAN` あるいは `INF` が含まれています。 `JSON_PARTIAL_OUTPUT_ON_ERROR` オプションを指定した場合は、 これらの特殊な数値を `0` にエンコードします。
`JSON_ERROR_UNSUPPORTED_TYPE` (int)
  json_encode() が対応していない型、たとえば resource などが渡されました。 `JSON_PARTIAL_OUTPUT_ON_ERROR` オプションを指定した場合は、 これらを `null` にエンコードします。
`JSON_ERROR_INVALID_PROPERTY_NAME` (int)
  JSON オブジェクトを PHP オブジェクトにデコードする際、 json_decode() に渡された文字列に、 \u0000 から始まるキーが含まれていました。
`JSON_ERROR_UTF16` (int)
  json_decode() に渡された JSON 文字列の中に、 単一の、ペアになっていない UTF-16 のサロゲートコードポイントが含まれていました。
`JSON_ERROR_NON_BACKED_ENUM` (int)
  json_encode() に渡される値のうち、 シリアライズできなかった Backed Enum でない値を含んでいることを示します。 PHP 8.1.0 以降で使用可能です。

次の定数は、 json_decode() のオプションとして 組み合わせて使用します。

`JSON_BIGINT_AS_STRING` (int)
  巨大な整数値を文字列としてデコードします。
`JSON_OBJECT_AS_ARRAY` (int)
  JSON オブジェクトを PHP の配列としてデコードします。 このオプションは json_decode() の第二引数を `true` に設定して呼び出すことで、自動的に設定できます。

次の定数は、 json_encode() のオプションとして組み合わせて使用します。

`JSON_HEX_TAG` (int)
  すべての < および > をそれぞれ \u003C および \u003E に変換します。
`JSON_HEX_AMP` (int)
  すべての & を \u0026 に変換します。
`JSON_HEX_APOS` (int)
  すべての ' を \u0027 に変換します。
`JSON_HEX_QUOT` (int)
  すべての " を \u0022 に変換します。
`JSON_FORCE_OBJECT` (int)
  非連想配列を使用した場合に、配列ではなくオブジェクトを出力します。 出力を受け取る側がオブジェクトを期待しており、配列が空っぽである場合などに特に便利です。
`JSON_NUMERIC_CHECK` (int)
  数値形式の文字列を数値としてエンコードします。
`JSON_PRETTY_PRINT` (int)
  返される結果の書式を、スペースを使って整えます。
`JSON_UNESCAPED_SLASHES` (int)
  `/` をエスケープしません。
`JSON_UNESCAPED_UNICODE` (int)
  マルチバイト Unicode 文字をそのままの形式で扱います (デフォルトでは \uXXXX にエスケープします)。
`JSON_PARTIAL_OUTPUT_ON_ERROR` (int)
  エンコード不可能な値は代替値に置き換え、処理を続行します。
`JSON_PRESERVE_ZERO_FRACTION` (int)
  float 型の値を常に float 値としてエンコードするようにします。
`JSON_UNESCAPED_LINE_TERMINATORS` (int)
  `JSON_UNESCAPED_UNICODE` が指定されると、 行の終端をエスケープされないままにします。 PHP 7.1 より前のバージョンでは、 この定数がなくてもそういう振る舞いをしていました。 PHP 7.1.0 以降で使用可能です。

次の定数は、 json_decode() および json_encode() のオプションとして組み合わせて使用します。

`JSON_INVALID_UTF8_IGNORE` (int)
  不正な UTF-8 の文字を無視します。 PHP 7.2.0 以降で使用可能です。
`JSON_INVALID_UTF8_SUBSTITUTE` (int)
  不正な UTF-8 の文字を、\0xfffd に変換します。 (Unicode の 'REPLACEMENT CHARACTER') PHP 7.2.0 以降で使用可能です。
`JSON_THROW_ON_ERROR` (int)
  エラーが起きた場合、 json_last_error() や json_last_error_msg() 関数で収集される、 グローバルなエラー状態を設定するかわりに、 JsonException をスローします。 `JSON_PARTIAL_OUTPUT_ON_ERROR` は `JSON_THROW_ON_ERROR` よりも優先します。 PHP 7.3.0 以降で使用可能です。

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open