字符串比较是字符串处理中常见的一种操作,PHP中比较两个字符串有很多方法,本篇文章通过代码实例来给大家介绍三种常见的比较方法:
使用比较运算符:
==/
===
、>
、<
等内置函数strcmp()
内置函数strcasecmp()
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比较运算符列表:
除了可以使用比较运算符来比较字符串外,还可以使用函数来比较字符串。PHP 中提供了两个函数来实现字符串比较功能,分别是 strcmp() 和 strcasecmp() 函数,我们来看看。
2、使用内置函数strcmp()--以区分大小写的方式比较两个字符串
strcmp(string1,string2)
比较两个字符串时,如果:
如果两个字符串相等,则会返回
0
;如果string1 小于 string2,则会返回
< 0
的值;如果string1 大于 string2,则会返回
> 0
的值;
我们先来看下面一个例子:
<?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()函数在比较字符串时,是区分大小写的。
<?php $str1="PHP中文网"; $str2="自由互联"; echo strcmp($str1,$str2)."<br>"; ?>
输出结果:
-1
借助这个特性,我们可以将其运用在网站注册账号时的确认用户密码功能中(密码通常是区分大小写的),比较两次输入的密码是否一致。
<?php header("Content-type:text/html;charset=utf-8"); $pwd1 = 'php124@qq'; $pwd2 = 'php124@QQ'; if(strcmp($pwd1, $pwd2) != 0){ echo '密码不匹配!'; } else { echo '密码匹配!'; } ?>
只有两个字符串完全匹配,strcmp()函数才会认为相等的;而在上面示例中,$pwd1 和 $pwd2的大小写不同,因此两个字符串不相等。
但有时,我们只需要比较字符串的值,不想区分大小写,例如比较网站的网址,那要怎么处理?简单,可以使用strcasecmp()函数。
3、使用内置函数strcasecmp()--以不区分大小写的方式比较两个字符串
strcasecmp()函数和strcmp()函数类似,都可比较字符串,返回值也相同,区别只是strcasecmp()函数不区分大小写。
下面我们来看看下面一个例子:
<?php header("Content-type:text/html;charset=utf-8"); $url1="https://www.php.cn/"; $url2="HTTPS://WWW.PHP.CN/"; if(strcasecmp($url1, $url2) == 0){ echo '两个网址相同'; } else { echo '两个网址不同'; } ?>
输出结果:
两个网址相同
好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程
最后给大家