PHP 7.0.0 Beta 2 Released

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが 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)
アンダーフローあるいはモードの不一致が発生しました。 この定数は 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_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) この定数は PHP 5.3.0 以降で使用可能です。
すべての " を \u0022 に変換します。 この定数は PHP 5.3.0 以降で使用可能です。
JSON_FORCE_OBJECT (integer)
非連想配列を使用した場合に、配列ではなくオブジェクトを出力します。 出力を受け取る側がオブジェクトを期待しており、配列が空っぽである場合などに特に便利です。 この定数は PHP 5.3.0 以降で使用可能です。
JSON_NUMERIC_CHECK (integer)
数値形式の文字列を数値としてエンコードします。 PHP 5.3.3 以降で使用可能です。
JSON_BIGINT_AS_STRING (integer)
大きな整数値を、文字列型でエンコードします。 PHP 5.4.0 以降で使用可能です。
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_PRESERVE_ZERO_FRACTION (integer)
float 型の値を常に float 値としてエンコードするようにします。 PHP 5.6.6 以降で使用可能です。
add a note add a note

User Contributed Notes 4 notes

up
28
Yzmir Ramirez
10 months ago
If you curious of the numeric values of the constants, as of JSON 1.2.1, the constants have the following values (not that you should use the numbers directly):

JSON_HEX_TAG => 1
JSON_HEX_AMP => 2
JSON_HEX_APOS => 4
JSON_HEX_QUOT => 8
JSON_FORCE_OBJECT => 16
JSON_NUMERIC_CHECK => 32
JSON_UNESCAPED_SLASHES => 64
JSON_PRETTY_PRINT => 128
JSON_UNESCAPED_UNICODE => 256

JSON_ERROR_DEPTH => 1
JSON_ERROR_STATE_MISMATCH => 2
JSON_ERROR_CTRL_CHAR => 3

JSON_ERROR_SYNTAX => 4

JSON_ERROR_UTF8 => 5
JSON_OBJECT_AS_ARRAY => 1

JSON_BIGINT_AS_STRING => 2
up
4
on5wis at mac dot com
3 months ago
since json_encode expects a UTF-8 string there is no need to encode the € symbol.

I suggest you try to echo : json_encode('€');
It gives: "\u20ac"
I'm running PHP 5.6.5 on the CLI, on MacOS X 10.10
up
-6
Anonymous
1 month ago
I am working with "Marathi Language Data" and I found that when I encoded Marathi data to json using json_encode it returned me unicode values of each character like below:

Program :

<?php
$ar
= array("word" => "धाडस");
echo
json_encode($ar);
?>

Output of program is :

{"word":"\u0927\u093e\u0921\u0938"}

This is not expected output because what I need is output as

{"word":"धाडस"}

So I used following code:

<?php
$ar
= array("word" => "धाडस");
echo
json_encode($ar, JSON_UNESCAPED_UNICODE);
?>

And I got the required output as :

{"word":"धाडस"}
up
-13
jgarviahonrado at yahoo dot es
3 months ago
When decoding the euro symbol (€) as below:

json_encode(utf8_encode('€')

json_encode provides the UTF-8 code \u0080, but it would be really interesting to get the \u20AC one.

Maybe a new option could be added to get the current code or the \u20AC one.
To Top