我有类似下面的代码:
<?php
$str = "76017060710034014696970658200876993546";
if(json_decode($str) !== null && json_decode($str) !== false){
var_dump(json_decode($str));
}
?>
结果如下:
int(9223372036854775807)
当然,这不是json字符串,我希望json_decode返回null或false,如manual中所述:
返回值
以适当的PHP类型返回json中编码的值。值 true,false和null返回为TRUE,FALSE和NULL 分别。如果json无法解码或者如果是,则返回NULL 编码数据比递归限制更深。
这怎么可能?这是一个错误还是我错过了什么?
答案 0 :(得分:4)
你缺少一个选项JSON_BIGINT_AS_STRING,顺便说一句字符串是一个有效的json。请尝试以下方法:
var_dump(json_decode($str, false, 512, JSON_BIGINT_AS_STRING));