先问大家一个问题:
上面代码的输出结果是true or false?
以前遇到过类似的问题,今天特意总结一下。
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进行比较。
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 |
转载地址:http://www.cnblogs.com/ainiaa/archive/2010/07/28/1786639.html