# Предопределённые константы

Следующие константы определяются модулем и доступны, только если модуль либо собрали в PHP, либо динамически загрузили при выполнении кода.

Следующие константы указывают на тип ошибки, которую возвращает функция json_last_error() или которая хранится в свойстве code объекта исключения JsonException.

`JSON_ERROR_NONE` (int)
  Процедура кодирования или декодирования завершилась без ошибок.
`JSON_ERROR_DEPTH` (int)
  Превышена максимальная глубина стека.
`JSON_ERROR_STATE_MISMATCH` (int)
  Ошибка возникает из-за нарушения JSON-формата, например из-за преждевременного завершения структуры, или когда декодируемая структура не соответствует ожидаемой, например, когда вместо объекта встречается массив.
`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_decode() при декодировании JSON-объекта в PHP, содержался ключ, который начинается с символа \u0000.
`JSON_ERROR_UTF16` (int)
  В JSON-строке, которую передали в функцию json_decode(), содержится экранированная Unicode-последовательность с одним непарным суррогатом из кодировки UTF-16.
`JSON_ERROR_NON_BACKED_ENUM` (int)
  Значение, которое передали в функцию json_encode(), включает нетипизированное перечисление, которые в PHP не сериализуются. Константа доступна с 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)
  Не кодировать многобайтовые символы Юникода, которые по умолчанию кодируются как последовательности \uXXXX.
`JSON_PARTIAL_OUTPUT_ON_ERROR` (int)
  Вместо прерывания с ошибкой замещает значения, которые невозможно закодировать, значением `null`.
`JSON_PRESERVE_ZERO_FRACTION` (int)
  Гарантирует, что значение, которое принадлежит типу float, кодируется как значение с плавающей точкой, когда дробная часть равна 0.
`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 — Юникод-символ '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