Example | Name | Result |
---|---|---|
$a == $b | Equal | TRUE if $a is equal to $b. |
$a === $b | Identical | TRUE if $a is equal to $b, and they are of the same type. (introduced in PHP 4) |
$a != $b | Not equal | TRUE if $a is not equal to $b. |
$a <> $b | Not equal | TRUE if $a is not equal to $b. |
$a !== $b | Not identical | TRUE if $a is not equal to $b, or they are not of the same type. (introduced in PHP 4) |
$a < $b | Less than | TRUE if $a is strictly less than $b. |
$a > $b | Greater than | TRUE if $a is strictly greater than $b. |
$a <= $b | Less than or equal to | TRUE if $a is less than or equal to $b. |
$a >= $b | Greater than or equal to | TRUE if $a is greater than or equal to $b. |
注意:如果将字符串和一个integer类型的值比较。string会转化为number类型(integer类型或者float类型),然后再和integer进行比较。
1 <?php
2 var_dump(0 == "a"); // 0 == 0 -> true
3 var_dump("1" == "01"); // 1 == 1 -> true
4 var_dump("1" == "1e0"); // 1 == 1 -> true
5
6 switch ("a") {
7 case 0:
8 echo "0";
9 break;
10 case "a": // never reached because "a" is already matched with 0
11 echo "a";
12 break;
13 }
14 ?>
15
Type of Operand 1 | Type of Operand 2 | Result |
---|---|---|
null or string | string | Convert NULL to "", numerical or lexical comparison |
bool or null | anything | Convert to bool, FALSE < TRUE |
object | object | Built-in classes can define its own comparison, different classes are uncomparable, same class - compare properties the same way as arrays (PHP 4), PHP 5 has its own explanation |
string, resource or number | string, resource or number | Translate strings and resources to numbers, usual math |
array | array | Array with fewer members is smaller, if key from operand 1 is not found in operand 2 then arrays are uncomparable, otherwise - compare value by value (see following example) |
array | anything | array is always greater |
object | anything | object is always greater |
在进行比较两个数的时候,最好先把这个表中的意思全部理解了。才好。
我曾经就在这个吃过亏。
还有就是,在比较两个value的时候,如果能使用 “===”和“!==”操作符的时候就使用这两个操作符。 以免php自作聪明的进行自动类型转换。