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