1. 程式人生 > >JS和PHP中能轉為布林false的值的對比

JS和PHP中能轉為布林false的值的對比

實際開發中經常會使用到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.