慕婉清6462132
2022-03-17 11:11:13
<?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
提交
取消
