PHP中==和===的區別在哪?

話不多說,上代碼

$a=0;
$b="test";

if($a==$b)
{
    echo "true";
}
else
{
    echo "false";
}

if($a===$b)
{
    echo "true";
}
else
{
    echo "false";
}

上面兩個判斷分別返回true和false,或許很多人會說這不是很簡單的判斷嗎?但是對於我來說卻是個很神奇的結果。。。

那麼爲什麼第一種判斷會返回true呢?

問問度娘,解釋如下:
1.==只是對值得比較(將兩邊值轉化爲同類型再比較),而===則是對值和類型的比較。
2.對於==的比較,若有一方爲數字,另一方爲字符串或空或null,均會先將非數字一方轉化爲0,再做比較。

接下來,我們再做個比較

$a=1;
$b="test";
if($a==$b)
{
    echo "true";
}
else
{
    echo "false";
}

此時結果爲false

區分完php中==和===的區別,我又想,在javascript中會不會是一樣的結果呢?

接下來我們再做個測試。以下是javascript代碼:

var a=0;
var b="test";

if(a==b)
{
    console.log("true");
}
else
{
    console.log("false");
}

var a=1;
var b="test";

if(a==b)
{
    console.log("true");
}
else
{
    console.log("false");
}

那麼上面的結果返回什麼呢?根據剛纔對php的結果,我的判斷是true和false,但是結果卻出乎意料,兩次結果都返回了false。

可見==比較符在javascript中和在php還是有點區別的,在javascript中數字和非數字的比較,非數字不會被轉化爲0,至於具體原因,還有待考究。希望哪位大神可以解答解答。

以上是本次內容。

發佈了39 篇原創文章 · 獲贊 38 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章