在之前的文章《PHP中怎样去定位字符串与数组中的元素?》中我们详细的介绍了PHP中搜索定位数组元素与字符串元素的相关知识,本篇文章我们来看一下PHP中怎样去比较两个字符串的相关知识,希望对大家有帮助!
在之前的文章中我们了解了可以通过strstr
函数与preg_grep
函数来进行定位搜索字符串与数组元素的操作,这是在PHP中很常见的操作,本篇我们来看一下PHP中怎样去比较字符串。
字符串是PHP中的一个重要的数据类型,其中怎样去比较字符串也是很常见的在我们的开发工作中,比较字符串有很多种的比较方法,下面我们就介绍一下比较常用的几种比较方法。
在PHP中存在着两个函数用来比较字符串,它们是strcmp
() 和 strcasecmp
() 函数,接下来我们就分别的介绍一下这两个函数的用法。
strcmp
()函数
在PHP中通过strcmp
()函数能够通过比较大小写的形式来比较字符串,strcmp
()函数的基本语法格式如下:
strcmp(string1,string2)
其中需要注意的是,参数string1
和参数string2
就是用来比较的两个字符串,如果返回的结果等于0,表示两个字符串相等,如果返回的结果大于0那就是表示字符串string1大于字符串string2,如果返回的结果小于0则表示字符串string1小于字符串string2。
下面我们通过一个简单的示例来看一下strcmp()函数的应用,示例如下:
<?php echo strcmp("HELlo world!","Hello world!"); echo '<br/>'; $str1="php中文网"; $str2="php中文"; echo strcmp($str1,$str2); echo '<br/>'; $str3="php"; $str4="PHP"; echo strcmp($str3,$str4); ?>
输出结果:
其中需要注意的是,strcmp()函数是二进制安全的,并且对大小写敏感。
接下来我们再来看一下与strcmp
()函数十分类似的strcasecmp
() 函数的使用。
strcasecmp
() 函数
上文中的strcmp
()函数最常用来比较大小写,函数对大小写很敏感,但是strcasecmp
() 函数不一样,它对大小写不敏感,这是它们的唯一区别。
strcasecmp
() 函数的基本语法格式如下:
strcasecmp(string1,string2)
其中需要注意的是:其中需要注意的是,参数string1
和参数string2
就是用来比较的两个字符串,如果返回的结果等于0,表示两个字符串相等,如果返回的结果大于0那就是表示字符串string1大于字符串string2,如果返回的结果小于0则表示字符串string1小于字符串string2。
下面我们还是通过上文中提到的示例来看一下输出结果会有什么不同,示例如下:
<?php echo strcasecmp("HELlo world!","Hello world!"); echo '<br/>'; $str1="php中文网"; $str2="php中文"; echo strcasecmp($str1,$str2); echo '<br/>'; $str3="php"; $str4="PHP"; echo strcasecmp($str3,$str4); ?>
输出结果:
从上述示例中能够看出,strcasecmp() 函数不区分大小写来进行字符串的比较。
上文中已经介绍完了两个比较常用的字符串比较函数,下面作为补充知识我们来看一下strncmp
() 函数。
strncmp
() 函数
PHP中的strncmp
() 函数与上文中的strcasecmp
() 函数和strcmp
()函数一样都能够进行字符串的比较,他们有什么不同呢?看完strncmp
() 函数的语法格式再来解释,strncmp
() 函数的基本语法格式如下:
strncmp(string1,string2,length)
其中需要注意的是,参数string1
与string2
都是与上文中的两个函数一样是用来比较的两个字符串,不同的是后面的这个参数length。参数length表示的是用来规定每个字符串用来表示的字符数,也就是说通过参数length的设定,不比较全部的字符串了。
返回的结果如果等于0,表示两个字符串相等,返回结果如果大于0就表示字符串string1大于字符串string2,如果返回的结果小于0则表示字符串string1小于字符串string2。
接下来让我们通过示例来看一下strncmp() 函数的使用,示例如下:
<?php $str1="php中文网"; $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); ?>
输出结果:
由此我们便通过strncmp() 函数来对规定的字符进行了字符比较,其中该函数也是对大小写敏感。
大家如果感兴趣的话,可以点击《PHP视频教程》进行