使用json_decode时,布尔值false会变为空值。我使用的json字符串具有可以为空,false,1或某些文本值的值,并且我只想使用具有值的字段,即使该值为false。所以在做的时候
$array = array();
foreach($obj as $key => $value){
if($value != ''){
$array[$key] = $value;
}
}
具有false值的字段不会保存到$ array中。有办法吗?
更新:执行print_r($ obj)时,所有false值都为空。所以我不认为!=是问题所在。如果我print_r json字符串空值是" null"和false值是" false",但是当print_r-ing json_decoded对象都变成空值时。
答案 0 :(得分:2)
如果您想检查空字符串而不考虑其他空值,请使用!==
代替!=
。
答案 1 :(得分:2)
你的错误因
而消失if($value != ''){
使用
if($value !== ''){
因为php中的false为空并且您的验证!=因传递而停止错误
答案 2 :(得分:1)
将比较从!=
更改为!==
$array = array();
foreach($obj as $key => $value){
if($value !== ''){
$array[$key] = $value;
}
}