比较运算符
相等
对于基本相等测试,使用相等运算符 ==。要进行更全面的检查,请使用相同的运算符 ===。
相同的运算符与等运算符的作用相同,要求其操作数具有相同的值,但也要求它们具有相同的数据类型。
例如,下面的示例将显示’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 是:
- 同一类
- 具有相同的属性集,包括动态属性
- 对于每个属性
$propertyset,$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
}