深入PHP 雙等號 詳解

2021-07-10 08:24:58 字數 730 閱讀 9000

php比較運算子出現的頻率實在是太高了,尤其是 ==

if(a == b)

但是,你真的掌握了 == 了嗎?細節很重要!

來看下面的**,說出你認為正確的答案

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");

先想出你的答案,然後再執行一次看看。如果答案沒有差錯,那麼恭喜你,基礎知識很紮實。

執行結果如下圖:

解釋:

前四個都是整數和字串比較,後兩個是數字字串比較

如果比較乙個整數和字串,則字串會被轉換為整數。

特別注意,字串轉換為整數時,是從左到右,直到遇到非數字字元為止。也就是說 '123abc456' 會被轉換成 123,而不是 123456。另外字串開始的空格會被忽略,比如 '   234abc' 轉換為 234。

如果比較兩個數字字串,則作為整數比較。此規則也適用於 switch 語句。

此文**鏈結

深入PHP中慎用雙等於 的詳解

php比較運算子出現的頻率實在是太高了,尤其是 if a b 但是,你真的掌握了 了嗎?細節很重要!來看下面的 說出你認為正確的答案 var dump 123fg456 123 var dump some string 0 var dump 123.0 123d456 var dump 0 a va...

深入PHP中慎用雙等於 的詳解

php比較運算子出現的頻率實在是太高了,尤其是 if a b 但是,你真的掌握了 了嗎?細節很重要!來看下面的 說出你認為正確的答案 var dump 123fg456 123 var dump some string 0 var dump 123.0 123d456 var dump 0 a va...

php等號 與全等

全等 推斷首先要資料型別要一樣,資料型別不一樣就為false 1 是同一資料型別後,假設是物件 假設是同一物件則為true否者為false echo person001與person002不是同一物件的情況下,不全等 if person001 person002 else echo person00...