Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php json_解码(“true”)应该返回什么?_Php_Json - Fatal编程技术网

Php json_解码(“true”)应该返回什么?

Php json_解码(“true”)应该返回什么?,php,json,Php,Json,当我在PHP中尝试以下操作时: var_dump(json_decode("123")); var_dump(json_decode("true")); 我所期望的是: NULL NULL 但我真正得到的是: int(123) bool(true) “123”和“true”是否应被视为有效的JSON字符串?或者它是json_decode()实现中的一个bug 谢谢。两个结果都是正确的 string(4) "true" 作为JavaScript字符串,应将其转换回bool(true)

当我在PHP中尝试以下操作时:

var_dump(json_decode("123"));

var_dump(json_decode("true"));
我所期望的是:

NULL

NULL
但我真正得到的是:

int(123)

bool(true)
“123”和“true”是否应被视为有效的JSON字符串?或者它是json_decode()实现中的一个bug


谢谢。

两个结果都是正确的

string(4) "true"

作为JavaScript字符串,应将其转换回bool(true)。字符串(3)“123”也是如此。

它们不是有效的JSON文本,但是
JSON\u decode
函数被证明能够处理JSON的片段。

请记住,JSON基本上只是javascript,实际上只是一个纯文本字符串。PHP和Javascript都有
true
false
常量:

php > var_dump(json_decode(true)); // php constant "true", maps to int 1
int(1)
php > var_dump(json_decode('true')); // php string / javascript constant true
bool(true)
php > var_dump(json_decode('"true"')); // json-encoded string "true"
string(4) "true"
您的
“123”
可能是一个PHP字符串,这会导致一些奇怪之处:

php > var_dump(json_encode(123));
string(3) "123"
php > var_dump(json_encode("123"));
string(5) ""123""   // not quite what you'd expect.
php > var_dump(json_encode('123'));
string(5) ""123""   // also somewhat unexpected


php > var_dump(json_decode(123));
int(123)
php > var_dump(json_decode('123'));
int(123)
php > var_dump(json_decode('"123"'));
string(3) "123"

为什么
json\u encode/json\u decode
会在非数组值上失败?根据,如果无法解码json或编码数据深度超过递归限制,则返回NULL。我认为'123'不是有效的JSON格式,所以它应该失败。我的理解正确吗?@DiMono-JSON文本是一个序列化的对象或数组-