PHP比較運算子的詳細介紹

2022-10-03 21:42:30 字數 1759 閱讀 3378

比較運算子種類

如同它們名稱所暗示的,允許對兩個值進行比較。比較運算子有如下幾個:

1) $a 程式設計客棧》 $b 大於:如果 $a 嚴格大於程式設計客棧$b,www.cppcns.com則返回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)

elseif (count($op1) > count($op2))

foreach ($op1 as $key => $val) else if ($val < $op2[$key]) elseif ($val > $op2[$key])

} return 0; // $op1 == $op2

}比較運算子中的三元運算子:

表示式 (expr1) ? (expr2) : (expr3)  當表示式expr1 的值為 true 時的值為expr2,當表示式 expr1 的值為 false 時的值為expr3。

php中的比較,PHP比較運算子的詳細介紹

運算子是告訴編譯程式執行特定算術或邏輯操作的符號,通常與運算元一起構成乙個表示式,我們經常看到它會參與數 算或邏輯運算。php也包涵了很多的運算子,這篇文章詳細解讀一下其中很重要的比較運算子。比較運算子種類 如同它們名稱所暗示的,允許對兩個值進行比較。比較運算子有如下幾個 1 a b 大於 如果 a...

php 比較運算子

摘自 例子名稱結果 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,或者它們的型別不同。p...

PHP中的比較運算子

一般來說,有以下規則 如果比較乙個數字和字串或者比較涉及到數字內容的字串,則字串會被轉換為數值並且比較按照數值來進行。但當用 或 進行比較時則不進行型別轉換,因為此時型別和數值都要比對。例如 var dump 0 a 0 0 true var dump 1 01 1 1 true var dump ...