mirror of
https://github.com/php/doc-zh.git
synced 2026-04-25 00:58:02 +02:00
394 lines
11 KiB
XML
394 lines
11 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- $Revision$ -->
|
||
<!-- EN-Revision: 40e4bf862f9c23ffe871a68baebf31f753d4293b Maintainer: daijie Status: ready -->
|
||
<!-- CREDITS: mowangjuanzi, Luffy -->
|
||
<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> 函数,或
|
||
<classname>JsonException</classname> 类中的
|
||
<varname>code</varname> 变量所返回的错误类型。
|
||
</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>
|
||
出现了下溢(underflow)或者模式不匹配。
|
||
</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>
|
||
当 JSON 对象解码为 PHP 对象时,传递给 <function>json_decode</function> 的字符串包含以 \u0000 字符开头的 key。
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="constant.json-error-utf16">
|
||
<term>
|
||
<constant>JSON_ERROR_UTF16</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
传递给 <function>json_encode</function> 的 JSON 字符串包含 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 8.1.0 起生效。
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
|
||
<para>
|
||
下面的常量可以和 <function>json_decode</function> 的 form 选项结合使用。
|
||
</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 对象作为数组解码。当调用 <function>json_decode</function> 且第二个参数为
|
||
&true; 时此选项会自动添加。
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
|
||
<para>
|
||
下面的常量可以和 <function>json_encode</function> 的 form 选项结合使用。
|
||
|
||
</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>
|
||
使一个非关联数组输出一个类(Object)而非数组。
|
||
在数组为空而接受者需要一个类(Object)的时候尤其有用。
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="constant.json-numeric-check">
|
||
<term>
|
||
<constant>JSON_NUMERIC_CHECK</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
将所有数字字符串编码成数字(numbers)。
|
||
</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>
|
||
用不可编码的值来代替失败。
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="constant.json-preserve-zero-fraction">
|
||
<term>
|
||
<constant>JSON_PRESERVE_ZERO_FRACTION</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
确保 <type>float</type> 值始终编码为为 float 值。
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="constant.json-unescaped-line-terminators">
|
||
<term>
|
||
<constant>JSON_UNESCAPED_LINE_TERMINATORS</constant>
|
||
(<type>int</type>)
|
||
</term>
|
||
<listitem>
|
||
<simpara>
|
||
The line terminators are kept unescaped when
|
||
<constant>JSON_UNESCAPED_UNICODE</constant> is supplied. It uses the same
|
||
behaviour as it was before PHP 7.1 without this constant.
|
||
Available since PHP 7.1.0.
|
||
</simpara>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
|
||
|
||
<para>
|
||
下面的常量可以和 <function>json_decode</function> 及 <function>json_encode</function> 的 form 选项结合使用。
|
||
</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(Unicode 字符“虚缺号”)。自 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>
|
||
</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
|
||
-->
|