三種對比方法:1、使用比較運運算元(==、===、>、<等)進行對比,例「字串1==字串2」,可比較兩字串是否相等;2、使用strcmp()以區分大小寫的方式比較兩個字串,語法「strcmp(字串1,字串2)」;3、使用strcasecmp()以不區分大小寫的方式比較兩個字串,語法「strcasecmp(字串1,字串2)」。
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
字串比較(對比字串)是字串處理中常見的一種操作,下面介紹三種常見的比較方法:
方法1、使用比較運運算元
我們可以用==
(雙等號)或者 ===
(三等號)來比較字串是否相等。
<?php header("Content-type:text/html;charset=utf-8"); $str1="Hello world!"; $str2="Hello world!"; if($str1==$str2){ echo "兩個字串相等<br>"; }else{ echo "兩個字串不相等<br>"; } if($str1===$str2){ echo "兩個字串相等<br>"; }else{ echo "兩個字串不相等<br>"; } ?>
輸出結果:
==
和===
的區別:==不比較型別,三等號===,它不轉換型別;使用等式(==)運運算元進行比較時,如果兩個值相同(它只比較變數的值,而不是資料型別),則返回true值;如果兩個值不相同,則返回false值。
使用恆等式(===)運運算元進行比較時,會檢視兩個變數(表示式或常數)是否值相等且具有相同的資料型別,即兩者都是字串或兩者都是整數等等。如果兩個變數包含相同的值和相同的資料型別,則此運運算元返回true,否則返回false。
我們可以用<
(小於)或者 >
(大於)來比較字串的大小。
<?php header("Content-type:text/html;charset=utf-8"); $str1="12"; $str2="13"; if($str1>$str2){ echo "'$str1' 比 '$str2' 大<br>"; }else{ echo "'$str1' 比 '$str2' 小<br>"; } $str1="15"; $str2="13"; if($str1<$str2){ echo "'$str1' 比 '$str2' 小<br>"; }else{ echo "'$str1' 比 '$str2' 大<br>"; } ?>
輸出結果:
'12' 比 '13' 小 '15' 比 '13' 大
PHP比較運運算元列表:
比較運運算元 | 名稱 | 描述 |
---|---|---|
$a == $b | 等於 | 如果型別轉換後 $a 和 $b 的值相等,則返回 TRUE,否則返回 FALSE |
$a === $b | 全等 | 如果 $a 和 $b 不僅值相等,而且它們值的型別也相等,則返回 TRUE,否則返回 FALSE |
$a != $b | 不等於 | 如果型別轉換後 $a 的值不等於 $b 的值,則返回TRUE,否則返回 FALSE |
$a <> $b | 不等於 | 與 != 相同,如果型別轉換後 $a 的值不等於 $b 的值,則返回 TRUE,否則返回 FALSE |
$a !== $b | 不全等 | 如果 $a 的值不等於 $b的值,或者它們值的型別不同,則返回 TRUE,否則返回 FALSE |
$a < $b | 小與 | 如果 $a 的值小於 $b 的值,則返回 TRUE,否則返回 FALSE |
$a > $b | 大於 | 如果 $a 的值大於 $b 的值,則返回 TRUE,否則返回 FALSE |
$a <= $b | 小於等於 | 如果 $a 的值小於或者等於 $b 的值,則返回 TRUE,否則返回 FALSE |
$a >= $b | 大於等於 | 如果 $a 的值大於或者等於 $b 的值,則返回 TRUE,否則返回 FALSE |
$a <=> $b | 太空船運運算元(組合比較符) | 當 $a小於、等於、大於 $b時 分別返回一個小於、等於、大於0的整型值。 PHP7開始提供. |
$a ?? $b ?? $c | NULL合併操作符 | 從左往右第一個存在且不為 NULL 的運算元。如果都沒有定義且不為 NULL,則返回 NULL。PHP7開始提供。 |
方法2、使用內建函數strcmp()--以區分大小寫的方式比較兩個字串
<?php $str1="12"; $str2="12"; echo strcmp($str1,$str2)."<br>"; $str1="12"; $str2="13"; echo strcmp($str1,$str2)."<br>"; $str1="15"; $str2="13"; echo strcmp($str1,$str2)."<br>"; ?>
strcmp()比較兩個字串時,如果:
如果兩個字串相等,則會返回0;
如果string1 小於 string2,則會返回< 0 的值;
如果string1 大於 string2,則會返回> 0 的值;
方法3、使用內建函數strcasecmp()--以不區分大小寫的方式比較兩個字串
strcasecmp()函數和strcmp()函數類似,都可比較字串,返回值也相同,區別只是strcasecmp()函數不區分大小寫。
<?php header("Content-type:text/html;charset=utf-8"); $url1="https://www.php.cn/"; $url2="HTTPS://WWW.PHP.CN/"; $c=strcasecmp($url1, $url2); echo $c."<br>"; if($c== 0){ echo '兩個網址相同'; } else { echo '兩個網址不同'; } ?>
推薦學習:《》
以上就是php怎麼對比字串是否不同的詳細內容,更多請關注TW511.COM其它相關文章!