PHP比較子的詳細介紹_php技巧

來源:互聯網
上載者:User

比較子種類

如同它們名稱所暗示的,允許對兩個值進行比較。比較子有如下幾個:
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。

以上就是比較子的重點內容了,文中對這些運算子和比較規則進行瞭解析,後面就要通過更多的練習才能把這些內容進行掌握和消化。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.