Предопределенные константы
Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.
Следующие константы указывают на тип ошибки, возвращенной функцией json_last_error() или хранящейся, как code в JsonException.
-
JSON_ERROR_NONE
(int) - Не произошло никаких ошибок. Доступна начиная с PHP 5.3.0.
-
JSON_ERROR_DEPTH
(int) - Была превышена максимальная глубина стека. Доступно с PHP 5.3.0.
-
JSON_ERROR_STATE_MISMATCH
(int) - Неверный или поврежденный JSON. Доступно с PHP 5.3.0.
-
JSON_ERROR_CTRL_CHAR
(int) - Ошибка управляющих символов, вероятно, из-за неверного кодирования. Доступно с PHP 5.3.0.
-
JSON_ERROR_SYNTAX
(int) - Синтаксическая ошибка. Доступно с PHP 5.3.0.
-
JSON_ERROR_UTF8
(int) - Поврежденные символы UTF-8, вероятно, из-за неверного кодирования. Доступно с PHP 5.3.3.
-
JSON_ERROR_RECURSION
(int) -
Объект или массив, переданный в функцию json_encode() включает
рекурсивные ссылки и не может быть закодирован.
Если была передана опция
JSON_PARTIAL_OUTPUT_ON_ERROR
, то на месте рекурсивных ссылок будет выведенnull
. Доступно с PHP 5.5.0. -
JSON_ERROR_INF_OR_NAN
(int) -
Значение, переданное в функцию json_encode(), включает либо
NAN
, либоINF
. Если была указана константаJSON_PARTIAL_OUTPUT_ON_ERROR
, то вместо указанных особых значений будет выведен0
. Доступно с PHP 5.5.0. -
JSON_ERROR_UNSUPPORTED_TYPE
(int) -
В функцию json_encode() было передано значение
неподдерживаемого типа, например, resource.
Если была указана константа
JSON_PARTIAL_OUTPUT_ON_ERROR
, то вместо неподдерживаемого значения будет выводитьсяnull
. Доступно с PHP 5.5.0. -
JSON_ERROR_INVALID_PROPERTY_NAME
(int) - В строке переданной в json_decode() был ключ, начинающийся с символа \u0000. Доступно с PHP 7.0.0.
-
JSON_ERROR_UTF16
(int) - Один непарный суррогат UTF-16 в экранированной последовательности Unicode в строке JSON, переданной в json_decode(). Доступно с PHP 7.0.0.
Можно комбинировать следующие константы для передачи в json_decode().
-
JSON_BIGINT_AS_STRING
(int) - Декодирует большие целые числа в качестве исходного значения строки. Доступно с PHP 5.4.0.
-
JSON_OBJECT_AS_ARRAY
(int) -
Преобразует объекты JSON в массив PHP. Эта опция может быть задана автоматически,
если вызвать json_decode() указав вторым параметром
true
. Доступно с PHP 5.4.0.
Следующие константы можно комбинировать для использования в json_encode().
-
JSON_HEX_TAG
(int) - Все < и > кодируются в \u003C и \u003E. Доступно с PHP 5.3.0.
-
JSON_HEX_AMP
(int) - Все & кодируются в \u0026. Доступно с PHP 5.3.0.
-
JSON_HEX_APOS
(int) - Все символы ' кодируются в \u0027. Доступно с PHP 5.3.0.
-
JSON_HEX_QUOT
(int) - Все символы " кодируются в \u0022. Доступно с PHP 5.3.0.
-
JSON_FORCE_OBJECT
(int) - Выдавать объект вместо массива при использовании неассоциативного массива. Это полезно, когда принимающая программа или код ожидают объект, а массив пуст. Доступно с PHP 5.3.0.
-
JSON_NUMERIC_CHECK
(int) - Кодирование строк, содержащих числа, как числа. Доступно с PHP 5.3.3.
-
JSON_PRETTY_PRINT
(int) - Использовать пробельные символы в возвращаемых данных для их форматирования. Доступно с PHP 5.4.0.
-
JSON_UNESCAPED_SLASHES
(int) -
Не экранировать
/
. Доступно с PHP 5.4.0. -
JSON_UNESCAPED_UNICODE
(int) - Не кодировать многобайтовые символы Unicode (по умолчанию они кодируются как \uXXXX). Доступно с PHP 5.4.0.
-
JSON_PARTIAL_OUTPUT_ON_ERROR
(int) - Позволяет избежать возникновения ошибок при использовании функции json_encode. Осуществляет подстановку значений по умолчанию вместо некодируемых. Доступно с PHP 5.5.0.
-
JSON_PRESERVE_ZERO_FRACTION
(int) - Гарантирует, что значение типа float будет преобразовано именно в значение типа float в случае, если дробная часть равна 0. Доступно с PHP 5.6.6.
-
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) -
Выбрасывается исключение JsonException в случае возникновения ошибок вместо
установки глобального состояния ошибки, которое может быть получено с помощью функции
json_last_error() и json_last_error_msg().
Константа
JSON_PARTIAL_OUTPUT_ON_ERROR
имеет приоритет надJSON_THROW_ON_ERROR
. Доступно с PHP 7.3.0.