<?phpheader("Content-Type: text/html;charset=utf-8");$json = '{ "flag":false }';$j = json_decode($json,true);print_r($j);结果为---------------------------------Array ( [flag] => )-------------------------------我就想要布尔值 ture 或者false啊 ,给我吃了啊?
3 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
布尔值true和false的实际值就是1和空,true和false只不过是它们的名字(相当于常量)而已,不信你试试下面两行代码:
echo true; //显示为1
echo false; //显示为空
所以json中的true和false解析为1和空就是再正常不过的事,谁也没有吃它,因为这才是它们的真面目。
你可以在实际应用中直接把它们当作true和false来使用:
if ($j["flag"]) echo "flag的值是true";
如果你一定要显示为true和false才舒服,那可以在实际应用中转换一下即可:
echo $j["flag"]?"true":"false"; //注意,引号是必须的,否则结果仍然是1和空
当然,用 var_dump 和 var_export 可以打印出true和false,但这没法用于实际应用啊,只能用于程序调试。
小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
这是函数作用的问题,print_r() 函数不会打印出 false 信息,要看 bool 值数据,应该使用 var_dump() 或者 var_export();
print_r 可以打印出 string、 integer 、 float、 array、 object 数据,但它不管 bool 值为假、或者 null 类型的数据;
添加回答
举报
0/150
提交
取消