mirror of
https://github.com/php/doc-ru.git
synced 2026-03-24 07:42:22 +01:00
407 lines
15 KiB
XML
407 lines
15 KiB
XML
<?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>
|
||
Символы < и > преобразовываются в последовательности \u003C и \u003E.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="constant.json-hex-amp">
|
||
<term>
|
||
<constant>JSON_HEX_AMP</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
Символы & преобразовываются в последовательность \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
|
||
-->
|