您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關PHP中的比較運算符是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
比較運算符種類
如同它們名稱所暗示的,允許對兩個值進行比較。比較運算符有如下幾個:
1) $a > $b 大于:如果 $a 嚴格大于$b,則返回TRUE
2) $a < $b 小于:如果 $a 嚴格小于$b,則返回TRUE
3) $a >= $b 大于等于:如果 $a 大于等于$b,則返回TRUE
4) $a <= $b 小于等于:如果 $a 小于等于$b,則返回TRUE
5) $a <> $b 不等于:如果 $a 不等于$b,則返回TRUE
6) $a != $b 不等于:如果 $a 不等于$b,則返回TRUE(同上)
7) $a == $b 等于:如果 $a等于 $b,則返回TRUE
8) $a === $b 全等于:如果 $a等于 $b,并且它們的類型也相同,則返回TRUE
9) $a !== $b 不全等于:如果 $a 不等于 $b,或者它們的類型不同,則返回TRUE
其中,我們要重點區分一下“等于”和“全等于”,$a == $b只是對兩個變量的值進行了比較運算,而全等于要對運算符兩邊的表達式同時進行值的比較和數據類型的比較,只有兩邊的值都相等,運算結果才是“真”。結合“不全等”運算符舉例來說,$a = 2; var_dump($a!==2);這個表達式返回值是“假”,因為2是等于2的。另外,$a = 2;是整型而var_dump($a!==2);里的2也是整型,但運算符是不全等于"!=="所以結果是假,因為2是等于2的。反過來如果是這樣$a = 2; var_dump($a!=='2');運算結果就是“真”的,因為2不等于'2',后面的'2'是一個字符串的'2',即不全等于不僅僅只是比較變量值,還要對變量的數據類型進行比較。
PHP中比較不同類型的結果
如果PHP比較運算符比較一個整數和字符串,則字符串會被轉換為整數后比較。如果比較兩個數字字符串,則會把它們作為整數比較,另外此規則也適用于 switch 語句。
比如:
var_dump(0 == "a"); // 返回TRUE,"a"被轉為0
var_dump("1" == "01"); // 返回TRUE,當做整數處理
string或null和string的比較:將NULL 轉換為 "",進行數字或字符串的比較
bool或null間的比較:轉換為bool,FALSE < TRUE
object內置類可以定義自己的比較,不同類不能比較,相同類則比較屬性
string,resource 或 number間的比較:將字符串和資源轉換成數字,按普通數學比較
array間的比較:具有較少成員的數組較小,如果運算數 1 中的鍵不存在于運算數 2 中則數組間無法比較,需要逐個值比較(見如下代碼)
array和任何其它類型比較:array 總是更大
object和任何其它類型比較:object 總是更大
數組比較代碼:
function standard_array_compare($op1, $op2) { if (count($op1) < count($op2)) { //具有較少成員的數組較小 return -1; // $op1 < $op2 } elseif (count($op1) > count($op2)) { return 1; // $op1 > $op2 } foreach ($op1 as $key => $val) { if (!array_key_exists($key, $op2)) { return null; } else if ($val < $op2[$key]) { return -1; } elseif ($val > $op2[$key]) { return 1; } } return 0; // $op1 == $op2 }
比較運算符中的三元運算符:
表達式 (expr1) ? (expr2) : (expr3) 當表達式expr1 的值為 TRUE 時的值為expr2,當表達式 expr1 的值為 FALSE 時的值為expr3。
看完上述內容,你們對PHP中的比較運算符是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。