PHP下 與 區別

2021-09-16 14:23:10 字數 768 閱讀 6188

三個要點:

先來個樣例

if(1 == "1")else
他的輸出結果將是true,此時你一定覺得沒毛病,php時弱型別的語言,1就是等於"1",但是我們通常不建議這麼做,原因請看下面的例項

if(1 == true)else  

if("test" == 0)else

注釋:gettype(var)能夠以字串的形式返回var的資料型別

上方**輸出結果如下

1 == true is true

gettype(1) == integer

gettype(true) == boolean

test == 0 is true

gettype("test") == string

gettype(0) == integer

看到上面1 == true沒毛病,但是他們兩個的型別時不一樣的,true時boolean型別,php中任何數值非零即為true,0為false。因此就引入了上面樣例中第二部分**和第二部分輸出的問題,由於0為false,而字串參與比較時,由於無法直接與boolean比較,string都將被處理為0,這時候,所有的string都將被處理為0。

此外,你如果嘗試(0 == null)他將為true,但是 "test" == null卻為false。因此看得出來,即使a==b,b==c,但a==c是不確定的,因此,為了養成良好的變成習慣,避免出現不可預知的錯誤,我們應該盡量使用===。

===的三個要點:

PHP中 與and 與or的區別

在php中,與and都表示邏輯與,與or都表示邏輯或,並且它們都是短路運算子。而它們的區別在於運算的優先順序不同。t1 true and false t2 true false var dump t1,t2 在上面的 中 t1的值為true,t2的值為false。因為運算子and 的優先順序為 an...

PHP中 與or的區別

一直認為php中 or 和 是可以劃等號的,其實不然,它們存在乙個優先順序的差別。下面通過乙個例子說明它們的差異 a false true 的優先順序大於 先執行 false true,然後賦值 a b false or true or 的優先順序小於 先將false賦值給 b var dump a...

js與php的區別

1 php拼字串用的是點.js用 號。2。php檔案要放在wamp檔案裡面的www裡面。3。php與js的嵌入方式相同,只是嵌入的標記不一樣。4。php輸出語法用echo。可以輸出多個字串。特殊的輸出方法 var dump 5。php定義變數用的是 6。php特殊的定義方式 變數 之中可以寫任意字串...