在之前的文章《PHP中怎樣去定位字符串與數(shù)組中的元素?》中我們?cè)敿?xì)的介紹了PHP中搜索定位數(shù)組元素與字符串元素的相關(guān)知識(shí),本篇文章我們來看一下PHP中怎樣去比較兩個(gè)字符串的相關(guān)知識(shí),希望對(duì)大家有幫助!
在之前的文章中我們了解了可以通過strstr
函數(shù)與preg_grep
函數(shù)來進(jìn)行定位搜索字符串與數(shù)組元素的操作,這是在PHP中很常見的操作,本篇我們來看一下PHP中怎樣去比較字符串。
字符串是PHP中的一個(gè)重要的數(shù)據(jù)類型,其中怎樣去比較字符串也是很常見的在我們的開發(fā)工作中,比較字符串有很多種的比較方法,下面我們就介紹一下比較常用的幾種比較方法。
在PHP中存在著兩個(gè)函數(shù)用來比較字符串,它們是strcmp
() 和 strcasecmp
() 函數(shù),接下來我們就分別的介紹一下這兩個(gè)函數(shù)的用法。
strcmp
()函數(shù)
在PHP中通過strcmp
()函數(shù)能夠通過比較大小寫的形式來比較字符串,strcmp
()函數(shù)的基本語法格式如下:
strcmp(string1,string2)
其中需要注意的是,參數(shù)string1
和參數(shù)string2
就是用來比較的兩個(gè)字符串,如果返回的結(jié)果等于0,表示兩個(gè)字符串相等,如果返回的結(jié)果大于0那就是表示字符串string1大于字符串string2,如果返回的結(jié)果小于0則表示字符串string1小于字符串string2。
下面我們通過一個(gè)簡(jiǎn)單的示例來看一下strcmp()函數(shù)的應(yīng)用,示例如下:
<?php echo strcmp("HELlo world!","Hello world!"); echo '<br/>'; $str1="php中文網(wǎng)"; $str2="php中文"; echo strcmp($str1,$str2); echo '<br/>'; $str3="php"; $str4="PHP"; echo strcmp($str3,$str4); ?>
輸出結(jié)果:
其中需要注意的是,strcmp()函數(shù)是二進(jìn)制安全的,并且對(duì)大小寫敏感。
接下來我們?cè)賮砜匆幌屡cstrcmp
()函數(shù)十分類似的strcasecmp
() 函數(shù)的使用。
strcasecmp
() 函數(shù)
上文中的strcmp
()函數(shù)最常用來比較大小寫,函數(shù)對(duì)大小寫很敏感,但是strcasecmp
() 函數(shù)不一樣,它對(duì)大小寫不敏感,這是它們的唯一區(qū)別。
strcasecmp
() 函數(shù)的基本語法格式如下:
strcasecmp(string1,string2)
其中需要注意的是:其中需要注意的是,參數(shù)string1
和參數(shù)string2
就是用來比較的兩個(gè)字符串,如果返回的結(jié)果等于0,表示兩個(gè)字符串相等,如果返回的結(jié)果大于0那就是表示字符串string1大于字符串string2,如果返回的結(jié)果小于0則表示字符串string1小于字符串string2。
下面我們還是通過上文中提到的示例來看一下輸出結(jié)果會(huì)有什么不同,示例如下:
<?php echo strcasecmp("HELlo world!","Hello world!"); echo '<br/>'; $str1="php中文網(wǎng)"; $str2="php中文"; echo strcasecmp($str1,$str2); echo '<br/>'; $str3="php"; $str4="PHP"; echo strcasecmp($str3,$str4); ?>
輸出結(jié)果:
從上述示例中能夠看出,strcasecmp() 函數(shù)不區(qū)分大小寫來進(jìn)行字符串的比較。
上文中已經(jīng)介紹完了兩個(gè)比較常用的字符串比較函數(shù),下面作為補(bǔ)充知識(shí)我們來看一下strncmp
() 函數(shù)。
strncmp
() 函數(shù)
PHP中的strncmp
() 函數(shù)與上文中的strcasecmp
() 函數(shù)和strcmp
()函數(shù)一樣都能夠進(jìn)行字符串的比較,他們有什么不同呢?看完strncmp
() 函數(shù)的語法格式再來解釋,strncmp
() 函數(shù)的基本語法格式如下:
strncmp(string1,string2,length)
其中需要注意的是,參數(shù)string1
與string2
都是與上文中的兩個(gè)函數(shù)一樣是用來比較的兩個(gè)字符串,不同的是后面的這個(gè)參數(shù)length。參數(shù)length表示的是用來規(guī)定每個(gè)字符串用來表示的字符數(shù),也就是說通過參數(shù)length的設(shè)定,不比較全部的字符串了。
返回的結(jié)果如果等于0,表示兩個(gè)字符串相等,返回結(jié)果如果大于0就表示字符串string1大于字符串string2,如果返回的結(jié)果小于0則表示字符串string1小于字符串string2。
接下來讓我們通過示例來看一下strncmp() 函數(shù)的使用,示例如下:
<?php $str1="php中文網(wǎng)"; $str2="php中文"; echo strncmp($str1,$str2,4); echo '<br/>'; $str3="php"; $str4="PHP"; echo strncmp($str3,$str4,3); echo '<br/>'; $str5="123455789"; $str6="12345678"; echo strncmp($str5,$str6,6); ?>
輸出結(jié)果:
由此我們便通過strncmp() 函數(shù)來對(duì)規(guī)定的字符進(jìn)行了字符比較,其中該函數(shù)也是對(duì)大小寫敏感。
大家如果感興趣的話,可以點(diǎn)擊《PHP視頻教程》進(jìn)行