比较运算符
相等
对于基本相等测试,使用相等运算符 ==
。要进行更全面的检查,请使用相同的运算符 ===
。
相同的运算符与等运算符的作用相同,要求其操作数具有相同的值,但也要求它们具有相同的数据类型。
例如,下面的示例将显示’a 和 b 相等’,但不是’a 和 b 相同’。
$a = 4;
$b = '4';
if ($a == $b) {
echo 'a and b are equal'; // this will be printed
}
if ($a === $b) {
echo 'a and b are identical'; // this won't be printed
}
使用等于运算符时,数字字符串将转换为整数。
对象比较
===
通过检查它们是否完全相同的实例来比较两个对象。这意味着即使它们以相同的方式创建(并且具有完全相同的值),new
stdClass() === new stdClass()
也会解析为 false。
==
通过递归检查它们是否相等( 深度等于 ) 来比较两个对象。这意味着,对于 $a == $b
,如果 $a
和 $b
是:
- 同一类
- 具有相同的属性集,包括动态属性
- 对于每个属性
$property
set,$a->property == $b->property
为 true(因此递归检查)。
其他常用的运算符
他们包括:
-
大于(
>
) -
小于(
<
) -
大于或等于(
>=
) -
小于或等于(
<=
) -
不等于(
!=
) -
不完全相同(
!==
) -
大于 :
$a > $b
,如果$a
的值大于$b
则返回true
,否则返回 false。
示例 :
var_dump(5 > 2); // prints bool(true)
var_dump(2 > 7); // prints bool(false)
- 小于 :
$a < $b
,如果$a
的值小于$b
,则返回true
,否则返回 false。
示例 :
var_dump(5 < 2); // prints bool(false)
var_dump(1 < 10); // prints bool(true)
- 大于或等于 :
$a >= $b
,如果$a
的值大于$b
或等于$b
则返回true
,否则返回false
。
示例 :
var_dump(2 >= 2); // prints bool(true)
var_dump(6 >= 1); // prints bool(true)
var_dump(1 >= 7); // prints bool(false)
- 小于或等于 :
$a <= $b
,如果$a
的值小于$b
或等于$b
,则返回true
,否则返回false
。
示例 :
var_dump(5 <= 5); // prints bool(true)
var_dump(5 <= 8); // prints bool(true)
var_dump(9 <= 1); // prints bool(false)
5/6。不等于/相同: 为了重复前面的相等示例,下面的示例将显示’a 和 b 不相同’,但不是’a 和 b 不相等’。
$a = 4;
$b = '4';
if ($a != $b) {
echo 'a and b are not equal'; // this won't be printed
}
if ($a !== $b) {
echo 'a and b are not identical'; // this will be printed
}