三種對比方法:1、使用比較運(yùn)算符(==、===、>、<等)進(jìn)行對比,例“字符串1==字符串2”,可比較兩字符串是否相等;2、使用strcmp()以區(qū)分大小寫的方式比較兩個(gè)字符串,語法“strcmp(字符串1,字符串2)”;3、使用strcasecmp()以不區(qū)分大小寫的方式比較兩個(gè)字符串,語法“strcasecmp(字符串1,字符串2)”。
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
字符串比較(對比字符串)是字符串處理中常見的一種操作,下面介紹三種常見的比較方法:
方法1、使用比較運(yùn)算符
我們可以用==
(雙等號(hào))或者 ===
(三等號(hào))來比較字符串是否相等。
<?php header("Content-type:text/html;charset=utf-8"); $str1="Hello world!"; $str2="Hello world!"; if($str1==$str2){ echo "兩個(gè)字符串相等<br>"; }else{ echo "兩個(gè)字符串不相等<br>"; } if($str1===$str2){ echo "兩個(gè)字符串相等<br>"; }else{ echo "兩個(gè)字符串不相等<br>"; } ?>
輸出結(jié)果:
==
和===
的區(qū)別:==不比較類型,三等號(hào)===,它不轉(zhuǎn)換類型;使用等式(==)運(yùn)算符進(jìn)行比較時(shí),如果兩個(gè)值相同(它只比較變量的值,而不是數(shù)據(jù)類型),則返回true值;如果兩個(gè)值不相同,則返回false值。
使用恒等式(===)運(yùn)算符進(jìn)行比較時(shí),會(huì)查看兩個(gè)變量(表達(dá)式或常量)是否值相等且具有相同的數(shù)據(jù)類型,即兩者都是字符串或兩者都是整數(shù)等等。如果兩個(gè)變量包含相同的值和相同的數(shù)據(jù)類型,則此運(yùn)算符返回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>"; } ?>
輸出結(jié)果:
'12' 比 '13' 小 '15' 比 '13' 大
PHP比較運(yùn)算符列表:
比較運(yùn)算符 | 名稱 | 描述 |
---|---|---|
$a == $b | 等于 | 如果類型轉(zhuǎn)換后 $a 和 $b 的值相等,則返回 TRUE,否則返回 FALSE |
$a === $b | 全等 | 如果 $a 和 $b 不僅值相等,而且它們值的類型也相等,則返回 TRUE,否則返回 FALSE |
$a != $b | 不等于 | 如果類型轉(zhuǎn)換后 $a 的值不等于 $b 的值,則返回TRUE,否則返回 FALSE |
$a <> $b | 不等于 | 與 != 相同,如果類型轉(zhuǎn)換后 $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 | 太空船運(yùn)算符(組合比較符) | 當(dāng) $a小于、等于、大于 $b時(shí) 分別返回一個(gè)小于、等于、大于0的整型值。 PHP7開始提供. |
$a ?? $b ?? $c | NULL合并操作符 | 從左往右第一個(gè)存在且不為 NULL 的操作數(shù)。如果都沒有定義且不為 NULL,則返回 NULL。PHP7開始提供。 |
方法2、使用內(nèi)置函數(shù)strcmp()–以區(qū)分大小寫的方式比較兩個(gè)字符串
<?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()比較兩個(gè)字符串時(shí),如果:
-
如果兩個(gè)字符串相等,則會(huì)返回0;
-
如果string1 小于 string2,則會(huì)返回< 0 的值;
-
如果string1 大于 string2,則會(huì)返回> 0 的值;
方法3、使用內(nèi)置函數(shù)strcasecmp()–以不區(qū)分大小寫的方式比較兩個(gè)字符串
strcasecmp()函數(shù)和strcmp()函數(shù)類似,都可比較字符串,返回值也相同,區(qū)別只是strcasecmp()函數(shù)不區(qū)分大小寫。
<?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 '兩個(gè)網(wǎng)址相同'; } else { echo '兩個(gè)網(wǎng)址不同'; } ?>
推薦學(xué)習(xí):《PHP視頻教程》