PHP布尔值echo输出为1/空白,需输出true/false的问题求助
解决PHP布尔值echo显示1/空白的问题
这是PHP的默认特性导致的:当你直接输出布尔类型的变量时,true会被自动转换为字符串 "1",false则会被转换为空字符串 "",所以才会出现你看到的输出结果。要输出字符串形式的true或false,有几种简单的解决办法:
方法1:直接赋值字符串类型的true/false
如果你不需要后续用这个变量做布尔判断,可以直接在赋值时就存字符串:
if($row1['multiple_image']==''){ $available_image = 'false'; // 赋值字符串而不是布尔值 }else{ $available_image = 'true'; }
这样直接echo $available_image就会输出你想要的true或false了。
方法2:输出时做三元判断(保留布尔变量)
如果还需要用$available_image做布尔逻辑判断,那就保留布尔类型,在输出的时候转换:
// 变量赋值依然用布尔值 if($row1['multiple_image']==''){ $available_image = false; }else{ $available_image = true; } // 输出时转换为字符串 echo $available_image ? 'true' : 'false';
方法3:使用json_encode快速转换
PHP的json_encode()函数会把布尔值序列化为JSON格式的字符串"true"或"false",也是一种简洁的方式:
echo json_encode($available_image);
额外提示
注意你的代码中,如果查询结果有多条数据,$available_image会被最后一次循环的值覆盖,最终只会输出最后一行的判断结果。如果需要处理所有行的结果,可能需要把值存入数组哦。
内容的提问来源于stack exchange,提问作者user5443928
相关产品推荐
相关产品推荐

