比較兩個(gè)字符串是否相等,最常見的方法就是使用“===”來判斷,至于它和“==”的區(qū)別,簡(jiǎn)單來說就是前者強(qiáng)調(diào)“identical”類型也要求一樣,后者要求“equal”,值相同就可以了,參考【1】.

或者使用strcmp來判斷,但是這個(gè)能夠告訴你兩個(gè)字符串是否相等,但是無法告訴你在那里不同。我的思路是單字符串分割為一個(gè)個(gè)字母(character),這樣比較就能精確知道在那個(gè)位置不同了。分隔字符串,使用“str_split”就可以了,語法參考【2】.

然后輸出結(jié)果數(shù)組,好處是連空格也會(huì)作為數(shù)組的元素,我之前的例子就是因?yàn)榍耙粋€(gè)字符串包含2個(gè)空格,而后一個(gè)只有一個(gè)。但是輸出的時(shí)候看到的顯示都是一樣的,也可以按照其他分隔符進(jìn)行分割,如“explode”或者“preg_split”.

一般能用 !=, == 比較兩個(gè)對(duì)象是否相等,只所以說是兩個(gè)對(duì)象,是因?yàn)樗麄儾灰欢ㄈ繛樽址?也能為整型等等,代碼如下:

  1. $a = "joe";  
  2. $b = "jerry";  
  3. if ($a != $b)  
  4. {  
  5.     echo "不相等";  
  6. }  
  7. else  
  8. {  
  9.     echo "相等";  

如果用 !==,===(能看到多了一個(gè)等號(hào))比較的話,兩個(gè)對(duì)象的類型要嚴(yán)格相等才能返回true;否則用==,!=則會(huì)將字符串自動(dòng)轉(zhuǎn)換成相應(yīng)的類型,以便進(jìn)行比較,代碼如下:

22 == "22"; // 返回 true

22 === "22"; // 返回false

正因?yàn)檫@樣,所以我們的程式時(shí)常會(huì)發(fā)生一些想不到的“意外”:

0 == "我愛你"; // 返回true

1 == "1 我愛你";// 返回true

php里更有這樣一組用于字符串比較的函數(shù):strcmp,strcasecmp,strncasecmp(),strncmp(),他們都是如果前者比后者大,則返回大于0的整數(shù);如果前者比后者小,則返回小于0的整數(shù);如果兩者相等,則返回0.他們比較的原理和其他語言的規(guī)則都是相同的.

strcmp是用于區(qū)分大小寫(即大小寫敏感)的字符串比較:

echo strcmp("abcdd", "abcde"); // 返回 1 (>0), 比較的是 "b"和"b"

strcasecmp用于不區(qū)分大小寫的字符串比較:

echo strcasecmp("abcdd", "abcde"); // 返回 -1 (<0), 比較的是"d"和"e"

strncmp用于比較字符串的一部分,從字符串的開頭開始比較,第三個(gè)參數(shù),為要比較的長(zhǎng)度:

echo strncmp("abcdd", "abcde", 3); // 返回 1 (>0),比較了 abc 和 abc

strncasecmp用于不區(qū)分大小寫的比較字符串的一部分,從字符串的開頭開始比較,第三個(gè)參數(shù),為要比較的長(zhǎng)度.

echo strncasecmp("abcdd", "abcde", 3); // 返回 0, 比較了 abc 和 abc, 由于不區(qū)分大小寫,所以兩者是相同的.

更有一種情況是單單比較字符串大小,達(dá)不到我們預(yù)定的需求,比如照常理 10.gif 會(huì)比 5.gif 大,但如果應(yīng)用上面幾個(gè)函數(shù),就會(huì)返回 -1,即表示 10.gif比5.gif,針對(duì)這種情況,php提供了兩個(gè)自然對(duì)比的函數(shù)strnatcmp,strnatcasecmp.

echo strnatcmp("10.gif", "5.gif"); // 返回 1 (>0)

echo strnatcasecmp("10.gif", "5.gif"); // 返回 1 (>0)

轉(zhuǎn)載請(qǐng)注明來源:php字符串比較函數(shù)

  哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無需額外費(fèi)用,即可穩(wěn)步提升排名至首頁。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)。