|
php比較運(yùn)算符出現(xiàn)的頻率實(shí)在是太高了,尤其是 ==
if(a == b){
// do something
}
但是,你真的掌握了 == 了嗎?細(xì)節(jié)很重要!
來(lái)看下面的代碼,說(shuō)出你認(rèn)為正確的答案
var_dump(' 123fg456'==123);
var_dump('some string' == 0);
var_dump(123.0 == '123d456');
var_dump(0 == "a");
var_dump("1" == "01");
var_dump("1" == "1e0");
先想出你的答案,然后再運(yùn)行一次看看。如果答案沒(méi)有差錯(cuò),那么恭喜你,基礎(chǔ)知識(shí)很扎實(shí)。
解釋:
如果比較一個(gè)整數(shù)和字符串,則字符串會(huì)被轉(zhuǎn)換為整數(shù)。如果比較兩個(gè)數(shù)字字符串,則作為整數(shù)比較。此規(guī)則也適用于 switch 語(yǔ)句。
特別注意,字符串轉(zhuǎn)換為整數(shù)時(shí),是從左到右,直到遇到非數(shù)字字符為止。也就是說(shuō) '123abc456' 會(huì)被轉(zhuǎn)換成 123,而不是 123456。另外字符串開始的空格會(huì)被忽略,比如 ' 234abc' 轉(zhuǎn)換為 234。
下面附上松散比較和嚴(yán)格比較的對(duì)照表
php技術(shù):深入PHP中慎用雙等于(==)的詳解,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。