1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
archived-doc-ru/reference/json/constants.xml
2025-06-30 11:36:29 +03:00

407 lines
15 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 40e4bf862f9c23ffe871a68baebf31f753d4293b Maintainer: irker Status: ready -->
<!-- Reviewed: no -->
<appendix xml:id="json.constants" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
&reftitle.constants;
&extension.constants;
<para>
Следующие константы указывают на тип ошибки, которую возвращает функция
<function>json_last_error</function> или которая хранится в свойстве <varname>code</varname>
объекта исключения <classname>JsonException</classname>.
</para>
<variablelist>
<varlistentry xml:id="constant.json-error-none">
<term>
<constant>JSON_ERROR_NONE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Процедура кодирования или декодирования завершилась без ошибок.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-error-depth">
<term>
<constant>JSON_ERROR_DEPTH</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Превышена максимальная глубина стека.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-error-state-mismatch">
<term>
<constant>JSON_ERROR_STATE_MISMATCH</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Ошибка возникает из-за нарушения JSON-формата, например из-за преждевременного завершения структуры,
или когда декодируемая структура не соответствует ожидаемой, например, когда вместо объекта встречается массив.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-error-ctrl-char">
<term>
<constant>JSON_ERROR_CTRL_CHAR</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Ошибка управляющих символов, вероятно, из-за неверного кодирования.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-error-syntax">
<term>
<constant>JSON_ERROR_SYNTAX</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Синтаксическая ошибка.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-error-utf8">
<term>
<constant>JSON_ERROR_UTF8</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Символы сформированы с нарушением правил кодировки UTF-8, что часто возникает из-за неправильного кодирования.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-error-recursion">
<term>
<constant>JSON_ERROR_RECURSION</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Объект или массив, который передали в функцию <function>json_encode</function>, содержит
рекурсивные ссылки и аргумент невозможно закодировать.
При передаче опции <constant>JSON_PARTIAL_OUTPUT_ON_ERROR</constant>
рекурсивные ссылки кодируются как значение &null;.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-error-inf-or-nan">
<term>
<constant>JSON_ERROR_INF_OR_NAN</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Значение, которое передали в функцию <function>json_encode</function>, включает либо
значение <link linkend="language.types.float.nan"><constant>NAN</constant></link>,
либо значение <link linkend="function.is-infinite"><constant>INF</constant></link>.
С опцией <constant>JSON_PARTIAL_OUTPUT_ON_ERROR</constant>
эти особые числа кодируются как значение <literal>0</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-error-unsupported-type">
<term>
<constant>JSON_ERROR_UNSUPPORTED_TYPE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
В функцию <function>json_encode</function> передали значение
неподдерживаемого типа наподобие &resource;.
С опцией <constant>JSON_PARTIAL_OUTPUT_ON_ERROR</constant>
неподдерживаемые значения кодируются как &null;.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-error-invalid-property-name">
<term>
<constant>JSON_ERROR_INVALID_PROPERTY_NAME</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
В строке, которую передали в функцию <function>json_decode</function> при декодировании JSON-объекта в PHP,
содержался ключ, который начинается с символа \u0000.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-error-utf16">
<term>
<constant>JSON_ERROR_UTF16</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
В JSON-строке, которую передали в функцию <function>json_decode</function>,
содержится экранированная Unicode-последовательность с одним непарным суррогатом из кодировки UTF-16.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-error-non-backed-enum">
<term>
<constant>JSON_ERROR_NON_BACKED_ENUM</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Значение, которое передали в функцию <function>json_encode</function>,
включает нетипизированное перечисление, которые в PHP не сериализуются.
Константа доступна с PHP 8.1.0.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<para>
Следующие константы передают в функцию <function>json_decode</function>
отдельно или комбинируют.
</para>
<variablelist>
<varlistentry xml:id="constant.json-bigint-as-string">
<term>
<constant>JSON_BIGINT_AS_STRING</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Декодирует большие целые числа как исходное строковое значение этих чисел.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-object-as-array">
<term>
<constant>JSON_OBJECT_AS_ARRAY</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Преобразовывает JSON-объекты в PHP-массив. Опция задаётся автоматически,
если вызвать функцию <function>json_decode</function> и указать вторым аргументом значение &true;.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<para>
Следующие константы передают в функцию <function>json_encode</function>
отдельно или комбинируют.
</para>
<variablelist>
<varlistentry xml:id="constant.json-hex-tag">
<term>
<constant>JSON_HEX_TAG</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Символы &lt; и &gt; преобразовываются в последовательности \u003C и \u003E.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-hex-amp">
<term>
<constant>JSON_HEX_AMP</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Символы &amp; преобразовываются в последовательность \u0026.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-hex-apos">
<term>
<constant>JSON_HEX_APOS</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Символы ' преобразовываются в последовательность \u0027.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-hex-quot">
<term>
<constant>JSON_HEX_QUOT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Символы " преобразовываются в последовательность \u0022.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-force-object">
<term>
<constant>JSON_FORCE_OBJECT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Выводит объект, а не массив,
при кодировании неассоциативного массива. Это полезно, когда кодируется пустой массив,
а получатель вывода ожидает объект.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-numeric-check">
<term>
<constant>JSON_NUMERIC_CHECK</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Кодирует числовые строки как числа.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-pretty-print">
<term>
<constant>JSON_PRETTY_PRINT</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Форматирует данные возврата с добавлением пробельных символов.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-unescaped-slashes">
<term>
<constant>JSON_UNESCAPED_SLASHES</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Не экранировать символы <literal>/</literal>.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-unescaped-unicode">
<term>
<constant>JSON_UNESCAPED_UNICODE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Не кодировать многобайтовые символы Юникода, которые по умолчанию кодируются как последовательности \uXXXX.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-partial-output-on-error">
<term>
<constant>JSON_PARTIAL_OUTPUT_ON_ERROR</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Вместо прерывания с ошибкой замещает значения, которые невозможно закодировать, значением &null;.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-preserve-zero-fraction">
<term>
<constant>JSON_PRESERVE_ZERO_FRACTION</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Гарантирует, что значение, которое принадлежит типу &float;,
кодируется как значение с плавающей точкой, когда дробная часть равна 0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-unescaped-line-terminators">
<term>
<constant>JSON_UNESCAPED_LINE_TERMINATORS</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
При передаче флага с опцией <constant>JSON_UNESCAPED_UNICODE</constant>
символы конца строки остаются неэкранированными.
Флаг ведёт себя так же,
как и до PHP 7.1 без опции.
Константа доступна с PHP 7.1.0.
</simpara>
</listitem>
</varlistentry>
</variablelist>
<para>
Следующие константы передают в функции <function>json_decode</function>
и <function>json_encode</function> отдельно или комбинируют.
</para>
<variablelist>
<varlistentry xml:id="constant.json-invalid-utf8-ignore">
<term>
<constant>JSON_INVALID_UTF8_IGNORE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Игнорировать некорректные символы кодировки UTF-8.
Константа доступна с PHP 7.2.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-invalid-utf8-substitute">
<term>
<constant>JSON_INVALID_UTF8_SUBSTITUTE</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Преобразовывать недопустимые для кодировки UTF-8 символы в последовательность \0xfffd —
Юникод-символ 'REPLACEMENT CHARACTER'.
Константа доступна с PHP 7.2.0.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-throw-on-error">
<term>
<constant>JSON_THROW_ON_ERROR</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
С этим флагом вместо установки глобального состояния ошибки, которое извлекается функциями
<function>json_last_error</function> и <function>json_last_error_msg</function>,
функции кодирования и декодирования выбрасывают исключение <classname>JsonException</classname>,
если возникает ошибка.
Константа <constant>JSON_PARTIAL_OUTPUT_ON_ERROR</constant> приоритетнее константы
<constant>JSON_THROW_ON_ERROR</constant>. Константа доступна с PHP 7.3.0.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</appendix>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->