PHP中的“===”和“!==”是嚴(yán)格相等運(yùn)算符和非嚴(yán)格相等運(yùn)算符。它們與普通的“==”和“!=”運(yùn)算符不同,它們?cè)诒容^兩個(gè)變量時(shí)不僅比較值,還比較類型。
先舉個(gè)例子:
$a = 5; $b = "5"; if ($a == $b) { echo '$a == $b'; } else { echo '$a != $b'; } if ($a === $b) { echo '$a === $b'; } else { echo '$a !== $b'; }
輸出結(jié)果:
$a == $b $a !== $b
可以看到,當(dāng)使用“==”運(yùn)算符比較$a和$b時(shí),它們的值相等,所以輸出"$a == $b"。但是,當(dāng)使用“===”運(yùn)算符比較它們時(shí),它們的值和類型都不相等,所以輸出"$a !== $b"。
再來舉一個(gè)例子:
$c = 5; $d = "5"; if ($c !== $d) { echo '$c !== $d'; } else { echo '$c === $d'; } if ($c != $d) { echo '$c != $d'; } else { echo '$c == $d'; }
輸出結(jié)果:
$c !== $d $c == $d
可以看到,當(dāng)使用“!==”運(yùn)算符比較$c和$d時(shí),它們的值和類型都不相等,所以輸出"$c !== $d"。但是,當(dāng)使用“!=”運(yùn)算符比較它們時(shí),它們的值相等,所以輸出"$c == $d"。
那么,什么時(shí)候使用嚴(yán)格相等運(yùn)算符和非嚴(yán)格相等運(yùn)算符呢?
一般來說,推薦使用嚴(yán)格相等運(yùn)算符和非嚴(yán)格相等運(yùn)算符。因?yàn)樗鼈儾粌H比較值,還比較類型。而如果只用“==”和“!=”,可能會(huì)遇到一些意外的情況。比如:
$e = "0"; $f = false; if ($e == $f) { echo '$e == $f'; } else { echo '$e != $f'; } if ($e === $f) { echo '$e === $f'; } else { echo '$e !== $f'; }
輸出結(jié)果:
$e == $f $e !== $f
可以看到,當(dāng)使用“==”運(yùn)算符比較$e和$f時(shí),它們的值相等,所以輸出"$e == $f"。但是,當(dāng)使用“===”運(yùn)算符比較它們時(shí),它們的類型不相等,所以輸出"$e !== $f"。這樣的情況可能會(huì)帶來一些意想不到的錯(cuò)誤,所以最好使用嚴(yán)格相等運(yùn)算符和非嚴(yán)格相等運(yùn)算符。
總之,嚴(yán)格相等運(yùn)算符和非嚴(yán)格相等運(yùn)算符是PHP中常用的比較運(yùn)算符。它們分別比較變量的值和類型,可以避免一些意外的情況。所以,在編寫代碼時(shí),應(yīng)該根據(jù)實(shí)際情況使用它們。