比較運算子允許對兩個值進行比較。比較運算子有以下幾個:
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
PHP比較運算子比較一個整數和字串,則字串會轉換為整數後比較。如果比較兩個數字字串,則會把它們當作整數比較,另外此規則也適用於 switch 語句。 例如:
var_dump(0 == "a"); // 回傳TRUE,"a"轉為0
var_dump("1" == "01"); // 回傳TRUE,當做整數處理
bool或null間的比較:轉換為bool,FALSE < TRUE
object內建類別可以定義自己的比較,不同類別不能比較,相同類別則比較屬性
string,resource 或number間的比較:將字串和資源轉換成數字,按普通數學比較
array間的比較:具有較少成員的數組較小,如果運算數1 中的鍵不存在於運算數2 中則數組間無法比較,需要逐個值比較(見如下代碼)
array和任何其它類型比較:array 總是更大
object和任何其它類型比較:object 總是更大
##
$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
$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
$a=array(1,2,3,6,'b'=>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
陣列比較程式碼:
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 }
var_dump((bool)(null));//boolean false //null轉換為bool時為false;
null和其他
型別轉換
為bool,然後再比較,而且FALSE < TRUE
比較運算符中的
符:表達式(expr1) ? (expr2) : (expr3) 當表達式expr1 的值為TRUE 時的值為expr2,當表達式expr1 的值為FALSE 時的值為expr3。
以上是php比較運算子怎麼使用?比較運算符用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!