首頁  >  文章  >  後端開發  >  php比較運算子怎麼使用?比較運算符用法詳解

php比較運算子怎麼使用?比較運算符用法詳解

伊谢尔伦
伊谢尔伦原創
2017-06-21 10:41:172357瀏覽

比較運算子允許對兩個值進行比較。比較運算子有以下幾個:

1) $a > $b 大於:如果$a 嚴格大於$b,則回傳TRUE
2) $a 398b54733f4eaa827197fda00172c28d= $b 大於等於:若$a 大於等於$b,則回傳TRUE
4) $a c90fab72e3635e74c8d357e6767b39f0 $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 總是更大

1、對於數組 

##

$a=array(1,2,3,6); 
$b=array(1,2,3,6,8); 
echo "\n"; 
var_dump( $a>$b); 
var_dump( $a==$b); 
var_dump( $a<$b);

結果: 

boolean false 
boolean false 
boolean true

ps:較少成員的陣列較小 

$a=array(1,2,3,6,9); 
$b=array(1,2,3,6,8); 
echo "\n"; 
var_dump( $a>$b); 
var_dump( $a==$b); 
var_dump( $a<$b); 
boolean true 
boolean false 
boolean false

ps:  挨個值比較   

$a=array(1,2,3,6,&#39;b&#39;=>3); 
$b=array(1,2,3,6,8); 
echo "\n"; 
var_dump( $a>$b); 
var_dump( $a==$b); 
var_dump( $a<$b); 
boolean false 
boolean false 
boolean false

#ps: 若運算數1 中的鍵不存在於運算數2 中則數組無法比較,都回傳false。

陣列比較程式碼:

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
}

2、對於bool或null和其他型別比較 

  
var_dump((bool)(null));//boolean false //null轉換為bool時為false; 

null和其他
型別轉換
為bool,然後再比較,而且FALSE < TRUE
比較運算符中的

三元運算

符:表達式(expr1) ? (expr2) : (expr3)  當表達式expr1 的值為TRUE 時的值為expr2,當表達式expr1 的值為FALSE 時的值為expr3。

以上是php比較運算子怎麼使用?比較運算符用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn