在php中等于和全等于在表達試上== 和 ===了,從簡單層面來說就是一個簡單等于,一個是精確定很高,下面我來給各位同學介紹== 和 === 的區別和應用,各位同學可參考.
在php中的符號等于'=='和全等于'==='的區別,從表面上看它們都是判斷等號左右兩把是否相等的功能,只是一個是兩個等號,一個是三個等號.
我們都應該知道,php是一種弱類型的語句,他的變量、字符定義其實并不十分規范,比如 $a = '4′;我們可以說這個$a是一個字符,但是他又可以直接進行數字的加減乘除;而且我們還知道一句話,叫做,非零即真,那么這句好就是對于==這個符號來說的.
實例代碼如下:
這個判斷是成立的,他會輸出ok;因為4不是零,那么就是真,真就不等于false,所以判斷成立,就會輸出ok,其實這里4在判斷比較的時候,因為其對比對象的原因,所以這個4被轉化為了布爾值ture,所以判斷成立.當然如果這里用===也是成立的.
實例代碼如下:
他也會輸出ok,因為4本來就不是false,他們不是同一個字符.但是兩者有個很重要的區別,就是,==或!=是會因為比對的對象而轉化字符類型的,而===或!==是強制他不進行轉化而原樣進行對比,比如下面一個例子:
實例代碼如下:
這個就不會輸出ok,因為0就是false,判斷不成立,但是如果你寫
實例代碼如下:
實例代碼如下:
這個就不會輸出ok,因為他轉化后相等,判斷不成立,但是如果是
實例代碼如下:
這個就會輸出ok,判斷成立,因為在恒等面前,有單引號的4和沒有單引號的4并不是同一個4,一個是數字,一個是個字符.所以這樣看來他們的對比就很簡單了.他們有什么實際應用呢,就是一些比較特殊的時候會用到.比如下面:
實例代碼如下:
一段代碼來看,實例代碼如下:
我們知道數值0也是代表假的.所以這個結果會輸出"等于".如果我們把程序改下,用全等于的呢
實例代碼如下:
這時候我們突然發現他會輸出"不等于".這是為什么呢.
因為:等號只判斷它們左右兩邊的最終結果值,而不判斷數據類型.而全等于首先判斷等號兩邊的數據類型是否一致.接著還要判斷兩邊的最終結果值是否一致.如果都一致才會返回true呢.所以在例子中換成全等于他會判斷兩邊的數據類型,$a 是數值型.而$b是布爾型,所以他會返回假值.==' 和 '!=='也是同樣的原理.