使用 操作符來檢測null和布林false值

2022-01-12 06:15:35 字數 869 閱讀 4678

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發射的資料,直到第...