<?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貢獻1775條經驗 獲得超11個贊
布爾值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,但這沒法用于實際應用啊,只能用于程序調試。

寶慕林4294392
TA貢獻2021條經驗 獲得超8個贊
這是函數作用的問題,print_r() 函數不會打印出 false 信息,要看 bool 值數據,應該使用 var_dump() 或者 var_export();
print_r 可以打印出 string、 integer 、 float、 array、 object 數據,但它不管 bool 值為假、或者 null 類型的數據;
- 3 回答
- 0 關注
- 512 瀏覽
添加回答
舉報
0/150
提交
取消