php寬鬆的型別系統提供了許多不同的方法來檢測乙個變數的值。然而這也造成了很多問題。 使用==
來檢測乙個值是否為null或false,如果該值實際上是乙個空字串或0,也會誤報為false。isset是檢測乙個變數是否已賦值, 而不是檢測該值是否為null或false,因此在這裡使用是不恰當的。
is_null()函式能準確地檢測乙個值是否為null,is_bool可以檢測乙個值是否是布林值(比如false),但存在乙個更好的選擇:===
操作符。===
檢測兩個值是否同一, 這不同於php寬鬆型別世界裡的相等。它也比is_null()和is_bool()要快一些,並且有些人認為這比使用函式來做比較更乾淨些。
$x = 0;$y = null;//
is $x null?
if($x == null
)
print('$x is 0, not null!');
//is $y null?
if(is_null($y
))
print('$y is null,可以使用===更快的語句');
if($y === null
)
print('perfect!');
//來下面乙個大坑
if(strpos('abc', 'a'))
//上面找到a的位置是0,所以if判斷不會通過下面這句
print('哦,沒找到a');
//使用 !==進行值和型別的對比
if(strpos('abc', 'a') !== false
)
print('這才是正確的');
小結
布林操作符
邏輯與 blue true 與boolean作用相同 邏輯與是短路操作符,如果第乙個引數為物件,則結果為第二個引數。有乙個運算元是null,返回null。有乙個運算元是undefined返回undefined。有乙個運算元是nan返回nan。var o new object o 1 1 o fals...
C 使用布林操作符
布林操作符 boolean operator 是求值結果要麼為true,要麼為false的一種操作符。c 提供了幾個非常有用的布林操作符,其中最簡單的是not 求反 操作符,它使用感嘆號 來表示。操作符求乙個布林值的反值。在上例中,假如變數areyouready的值為true,那麼表示式 areyo...
Rxjava條件和布林操作符
條件操作符 作用amb 給定多個observable,只讓第乙個發射資料的observable發射資料 defaultifempty 發射來自原始的observable的資料,如果原始observable沒有發射資料則發射乙個預設資料 skiputil 丟棄原始observable發射的資料,直到第...