恆等計算符,和比較運算符號“==”的區別是 “==”不會檢查條件式的表達式的類型,恆等計算符會同時檢查表達式的值與類型。
這主要和php是無類型語言有關,比如 NULL,FALSE,array(),”",0,”0″這幾個值如果用==他們是相等的,但是你如果判斷出某個值真正的返回值呢,就可以用 ===
$a = 0;
$b = FALSE;
$a === FALSE 不成立,但 $b === FALSE成立,如果是==, $a == FALSE 和 $b == FALSE都成立
===運算符還是很有用的,php有些內置函數成功會返回某個值,失敗會返回false,假如成功了但返回的是”"或者0之類的空值你怎麼判斷成功或者失敗呢?這是就可以用 === ,它可以區分變量類型。
參考:
比較運算符
例子
名稱
結果
$a == $b
等於
TRUE,如果 $a 等於 $b。
$a === $b
全等
TRUE,如果 $a 等於 $b,並且它們的類型也相同。(PHP 4 引進)
$a != $b
不等
TRUE,如果 $a 不等於 $b。
$a <> $b
不等
TRUE,如果 $a 不等於 $b。
$a !== $b
非全等
TRUE,如果 $a 不等於 $b,或者它們的類型不同。(PHP 4 引進)
$a < $b
小與
TRUE,如果 $a 嚴格小於 $b。
$a > $b
大於
TRUE,如果 $a 嚴格 $b。
$a <= $b
小於等於
TRUE,如果 $a 小於或者等於 $b。
$a >= $b
大於等於
TRUE,如果 $a 大於或者等於 $b。
如果比較一個整數和字符串,則字符串會被轉換為整數。如果比較兩個數字字符串,則作為整數比較。此規則也適用於 switch語句。
代碼如下 復制代碼<?php
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("1" == "1e0"); // 1 == 1 -> true
switch ("a") {
case 0:
echo "0";
break;
case "a": // never reached because "a" is already matched with 0
echo "a";
break;
}
?>