php比較運算子怎麼用來比較不同的類型

伊谢尔伦
發布: 2023-03-10 22:40:01
原創
1631 人瀏覽過

1. PHP比較運算子

$a == $b 等於 TRUE,如果 $a 等於 $b。 
$a === $b 全等 TRUE,如果 $a 等於 $b,且它們的型別也相同。 (PHP 4 引進) 
$a != $b 不等 TRUE,如果 $a 不等於 $b。 
$a <> $b 不等 TRUE,如果 $a 不等於 $b。 
$a !== $b 非全等 TRUE,如果 $a 不等於 $b,或它們的型別不同。 (PHP 4 only) 
$a < $b 小與 TRUE,如果 $a 嚴格小於 $b。 
$a > $b 大於 TRUE,如果 $a 嚴格 $b。 
$a <= $b 小於等於 TRUE,如果 $a 小於或等於 $b。 
$a >= $b 大於等於 TRUE,如果 $a 大於或等於 $b。

如果PHP比較運算子比較一個整數和字串,則字串會被轉換為整數。如果比較兩個數字字串,則作為整數比較。此規則也適用於 switch 語句。

<?php  
var_dump(0 == "a"); // 0 == 0 -> true  
var_dump("1" == "01"); // 1 == 1 -> true  
switch ("a") {  
case 0:  
echo "0";  
break;  
case "a": // never reached because "a" is already matched with 0  
echo "a";  
break;  
}  
?>
登入後複製

如果運算數的類型不同,則根據下表比較(按順序)。

2. PHP比較運算子比較不同型別

null 或string string 將NULL 轉換為"",進行數字或字彙比較 
bool 或null 任何其它型別轉換為bool, FALSE < TRUE 
object object 內建類別可以定義自己的比較,不同類別不能比較,相同類別和陣列同樣方式比較屬性(PHP 4 中),PHP 5 有自己的說明

string ,resource 或number string,resource 或number 將字串和資源轉換成數字,按普通數學比較 
array array 具有較少成員的數組較小,如果運算數1 中的鍵不存在於運算數2 中則數組無法比較,否則挨個值比較

array 任何其它類型array 總是更大 
object 任何其它類型object 總是更大

<?php  
// 数组是用标准比较运算符这样比较的  
function standard_array_compare($op1, $op2)  
{  
if (count($op1) < count($op2)) {  
return -1; // $op1 < $op2  
} elseif (count($op1) > count($op2)) {  
return 1; // $op1 > $op2  
}  
foreach ($op1 as $key => $val) {  
if (!array_key_exists($key, $op2)) {  
return null; // uncomparable  
} elseif ($val < $op2[$key]) {  
return -1;  
} elseif ($val > $op2[$key]) {  
return 1;  
}  
}  
return 0; // $op1 == $op2  
}  
?>
登入後複製

PHP比較運算符之三元運算符號

另一個條件運算子是「?:」(或三元)運算子。

<?php  
// Example usage for: Ternary Operator  
$action = (empty($_POST[&#39;action&#39;])) ? &#39;default&#39; : $_POST[&#39;action&#39;];  
// The above is identical to this if/else statement  
if (empty($_POST[&#39;action&#39;])) {  
$action = &#39;default&#39;;  
} else {  
$action = $_POST[&#39;action&#39;];  
}  
?>
登入後複製

表達式 (expr1) ? (expr2) : (expr3) 在 expr1 求值為 TRUE 時的值為 expr2,在 expr1 求值為 FALSE 時的值為 expr3。

註: 注意三元運算子是個語句,因此其求值不是變量,而是語句的結果。如果想透過引用回傳一個變數這點就很重要。在一個透過引用傳回的函數中語句 return $var == 42 ? $a : $b; 將不起作用,以後的 PHP 版本會為此發出警告。

識別運算子實作邏輯比較

a.多條直接為或的關係(使用者輸入)

time>12
time=9
登入後複製

b.單條並的關係(使用者輸入)

time>12&&time<25
登入後複製

c.可用比較運算子(>、<、<=、=、!=)

d.要求比較的物件卸載前邊。

以上是php比較運算子怎麼用來比較不同的類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!