比較運算子
相等
對於基本相等測試,使用相等運算子 ==。要進行更全面的檢查,請使用相同的運算子 ===。
相同的運算子與等運算子的作用相同,要求其運算元具有相同的值,但也要求它們具有相同的資料型別。
例如,下面的示例將顯示’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
}