溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php中 === 和 == 的區(qū)別

發(fā)布時(shí)間:2020-06-19 10:50:13 來源:億速云 閱讀:1003 作者:Leah 欄目:編程語言

這篇文章給大家分享的是php中 === 和 == 的區(qū)別,如果你剛好也有這個(gè)困惑,不妨參照這篇文章。閱讀完整文相信大家能解決這個(gè)問題。

比較運(yùn)算符 == (相等運(yùn)算符) 和 === (恒等運(yùn)算符) 用于比較兩個(gè)值。他們也被稱為 寬松等于 (==) 和 嚴(yán)格等于 (===) 運(yùn)算符。

符號(hào)名稱例子輸出結(jié)果
==等于$a == $b忽略類型,如果 $a 等于 $b 則為 TRUE
===恒等于$a === $b如果 $a 等于 $b,并且類型相同則為 TRUE

PHP 運(yùn)算符 PHP中有很多運(yùn)算符, 但 == 和 === 運(yùn)算符嚴(yán)格或隨意執(zhí)行類似的任務(wù)。

  • 如果兩個(gè)值的類型不同,那么 == 和 === 會(huì)得到 不同的結(jié)果。運(yùn)算速度也會(huì)有所不同, 因?yàn)?== 會(huì)先進(jìn)行類型轉(zhuǎn)換,然后進(jìn)行比較。
  • 如果兩個(gè)值類型相同,那么 == 和 === 會(huì)得到 相同的結(jié)果。 運(yùn)算速度也幾乎相同,兩個(gè)運(yùn)算符都不會(huì)進(jìn)行類型轉(zhuǎn)換。

相等運(yùn)算 == 比較兩個(gè)值時(shí)會(huì)臨時(shí)轉(zhuǎn)換數(shù)據(jù)類型,而 === (全等運(yùn)算符)不需要執(zhí)行任何類型轉(zhuǎn)換,因此計(jì)算量減少,速度也更快。

案例 1:

<?php 

// 0 == 0 ->  類型相同返回 true
// 轉(zhuǎn)換完成,然后
// 檢查是否相等
var_dump(0 == "a"); 

// 1 == 1 -> true 
var_dump("1" == "01"); 

// 10 == 10 -> true 
var_dump("10" == "1e1"); 

// 100 == 100 -> true 
var_dump(100 == "1e2"); 

// 0 === "a" -> 這種情況為 false
// 轉(zhuǎn)換不僅完成
// 還檢查是否存在
// 是否相等
var_dump(0 === "a"); 

// "1" === "01" -> false 
var_dump("1" === "01"); 

// "10" === "1e1" -> false 
var_dump("10" === "1e1"); 

// 100 == "1e2" -> false 
var_dump(100 === "1e2"); 

switch ("a") { 
case 0: 
    echo "In first case"; 
    break; 

// 永遠(yuǎn)不會(huì)匹配 "a" 選項(xiàng)
// 因?yàn)?switch 使用的是 == 
case "a": 
    echo "In sceond case"; 
    break; 
} 
?>

輸出:

bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(false)
In first case

案例 2:

<?php 

// TRUE - 以下表達(dá)式等同于 (bool)1 == TRUE 
var_dump(1 == TRUE); 

// TRUE - 以下表達(dá)式等同于 (bool)0 == FALSE 
var_dump(0 == FALSE); 

// FALSE - 1 不全等于 TRUE
// 1 是整形, TRUE 是布爾型 
var_dump(1 === TRUE); 

// FALSE - 0 不全等于 FALSE
// 0 是整形, FALSE 是布爾型
var_dump(0 === FALSE); 
?>

輸出:

bool(true)
bool(true)
bool(false)
bool(false)

注意: === 運(yùn)算符‘類型比較相對(duì)安全’, 僅當(dāng)兩個(gè)值具有相同的類型和值時(shí)才會(huì)返回 TRUE, 使用 == 時(shí),值相等就會(huì)返回 TRUE。

看完上述內(nèi)容,你們對(duì)php中 === 和 == 的區(qū)別大概了解了嗎?如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI