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