实际开发中经常会使用到JS和PHP中的变量转布尔值进行条件判断,下面对两种语言中转布尔类型结果为false的值进行对比,加深记忆和方便引用。
除了下表列出项,其它的值均转成真值true 。
转布尔值后为false
JS | PHP |
---|---|
布尔值 false 本身 | 布尔值 false 本身 |
特殊类型 null | 特殊类型 null (包括尚未赋值的变量) |
空字符串 “” | 空字符串 “” |
数值 0 (零) | 整型值 0(零) |
undefined | 浮点型值 0.0(零) |
NaN | 字符串 “0” |
不包括任何元素的数组 | |
从空标记生成的 SimpleXML 对象 | |
不包括任何成员变量的对象(仅 PHP 4.0 适用) |
JS中的"0"比较需要注意:
>>> "0" == false //当操作双方非同一类型时,有一边是数值或是布尔值则会先将两边转成数值再比较
true
>>> "0" == true
false
>>> Boolean("0") //转化成的布尔值是true
true
>>> Boolean(0)
false
PHP中有时需要判断从数据库拿出的字段值是不是等于0,而不受null值的影响,可以采用'0'==$var
的方式判断,因为’0’不等于null。
var_dump(
'0' == false, //bool(true)
'0' == null, //bool(false)
'0' == 0, //bool(true)
0 == null //bool(true)
);
End.