1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-25 16:22:18 +01:00
Files
archived-doc-ru/reference/json/constants.xml
2024-05-21 12:11:59 +03:00

408 lines
14 KiB
XML
Raw 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: 02b1d42099b98f45609d49fde36d10893ad0a314 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> был ключ, начинающийся с
символа \u0000.
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="constant.json-error-utf16">
<term>
<constant>JSON_ERROR_UTF16</constant>
(<type>int</type>)
</term>
<listitem>
<simpara>
Один непарный суррогат UTF-16 в экранированной последовательности Unicode в
строке JSON, переданной в <function>json_decode</function>.
</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>
Не кодировать многобайтовые символы Unicode (по умолчанию они кодируются как \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>
Позволяет избежать возникновения ошибок при использовании функции
json_encode. Осуществляет подстановку значений
по умолчанию вместо некодируемых.
</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; будет преобразовано
именно в значение типа 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>
Выбрасывается исключение <classname>JsonException</classname>, если возникла ошибка, вместо
установки глобального состояния ошибки, которое может быть получено функциями
<function>json_last_error</function> и <function>json_last_error_msg</function>.
Константа <constant>JSON_PARTIAL_OUTPUT_ON_ERROR</constant> имеет приоритет над
<constant>JSON_THROW_ON_ERROR</constant>. Доступна с PHP 7.3.0.
</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 8.1.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
-->