詳細解讀PHP比較子_PHP教程

來源:互聯網
上載者:User

表格 1. 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,或者它們的類型不同。(PHP 4 only)
$a < $b 小與 TRUE,如果 $a 嚴格小於 $b。
$a > $b 大於 TRUE,如果 $a 嚴格 $b。
$a <= $b 小於等於 TRUE,如果 $a 小於或者等於 $b。
$a >= $b 大於等於 TRUE,如果 $a 大於或者等於 $b。

如果PHP比較子比較一個整數和字串,則字串會被轉換為整數。如果比較兩個數字字串,則作為整數比較。此規則也適用於 switch 語句。

 
  1. < ?php
  2. var_dump(0 == "a"); // 0 == 0 -> true
  3. var_dump("1" == "01"); // 1 == 1 -> true
  4. switch ("a") {
  5. case 0:
  6. echo "0";
  7. break;
  8. case "a": // never reached because "a" is already matched with 0
  9. echo "a";
  10. break;
  11. }
  12. ?>

如果運算數的類型不同,則根據下表比較(按順序)。

表格 2. PHP比較子比較不同類型

運算數 1 類型 運算數 1 類型 結果
null 或 string string 將 NULL 轉換為 "",進行數字或詞彙比較
bool 或 null 任何其它類型 轉換為 bool,FALSE < TRUE
object object 內建類可以定義自己的比較,不同類不能比較,相同類和數組同樣方式比較屬性(PHP 4 中),PHP 5 有其自己的說明

string,resource 或 number string,resource 或 number 將字串和資源轉換成數字,按普通數學比較
array array 具有較少成員的數組較小,如果運算數 1 中的鍵不存在於運算數 2 中則數組無法比較,否則挨個值比較(見下例)

array 任何其它類型 array 總是更大
object 任何其它類型 object 總是更大

例子 1. 標準數組比較代碼

 
  1. < ?php
  2. // 數組是用標準比較子這樣比較的
  3. function standard_array_compare($op1, $op2)
  4. {
  5. if (count($op1) < count($op2)) {
  6. return -1; // $op1 < $op2
  7. } elseif (count($op1) > count($op2)) {
  8. return 1; // $op1 > $op2
  9. }
  10. foreach ($op1 as $key => $val) {
  11. if (!array_key_exists($key, $op2)) {
  12. return null; // uncomparable
  13. } elseif ($val < $op2[$key]) {
  14. return -1;
  15. } elseif ($val > $op2[$key]) {
  16. return 1;
  17. }
  18. }
  19. return 0; // $op1 == $op2
  20. }
  21. ?>

PHP比較子之三元運算子

另一個條件運算子是“?:”(或三元)運算子 。 例子 2. 賦預設值

 
  1. < ?php
  2. // Example usage for: Ternary Operator
  3. $action = (empty($_POST['action']))
    ? 'default' : $_POST['action'];
  4. // The above is identical to
    this if/else statement
  5. if (empty($_POST['action'])) {
  6. $action = 'default';
  7. } else {
  8. $action = $_POST['action'];
  9. }
  10. ?>

運算式 (expr1) ? (expr2) : (expr3) 在 expr1 求值為 TRUE 時的值為 expr2,在 expr1 求值為 FALSE 時的值為 expr3。

注: 注意三元運算子是個語句,因此其求值不是變數,而是語句的結果。如果想通過引用返回一個變數這點就很重要。在一個通過引用返回的函數中語句 return $var == 42 ? $a : $b; 將不起作用,以後的 PHP 版本會為此發出一條警告。


http://www.bkjia.com/PHPjc/446050.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/446050.htmlTechArticle表格 1. PHP比較子 例子 名稱 結果 $a == $b 等於 TRUE,如果 $a 等於 $b。 $a === $b 全等 TRUE,如果 $a 等於 $b,並且它們的類型也相同。(PH...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.