PHP字符串学习之比较两个字符串

青灯夜游
发布: 2021-08-03 14:40:13
原创
6572人浏览过

上一篇文章中我们了解了拼接两个字符串的方法,有需要的请看《教你使用php操作符将两个字符串拼接在一起》。今天我们来了解下比较两个字符串的方法,一起来学习吧!

字符串比较是字符串处理中常见的一种操作,PHP中比较两个字符串有很多方法,本篇文章通过代码实例来给大家介绍三种常见的比较方法:

  • 使用比较运算符:==<span style="font-family:Microsoft Yahei, Hiragino Sans GB, Helvetica, Helvetica Neue, 微软雅黑, Tahoma, Arial, sans-serif">/</span>===><

  • 内置函数strcmp()

  • 内置函数strcasecmp()

    立即学习PHP免费学习笔记(深入)”;

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比较运算符列表:

比较运算符 名称 描述
$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 小与 如果 $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时 分别返回一个小于、等于、大于0的整型值。 PHP7开始提供.
$a ?? $b ?? $c    NULL合并操作符 从左往右第一个存在且不为 NULL 的操作数。如果都没有定义且不为 NULL,则返回 NULL。PHP7开始提供。

除了可以使用比较运算符来比较字符串外,还可以使用函数来比较字符串。PHP 中提供了两个函数来实现字符串比较功能,分别是 strcmp() 和 strcasecmp() 函数,我们来看看。

2、使用内置函数strcmp()--以区分大小写的方式比较两个字符串

strcmp(string1,string2)比较两个字符串时,如果:

  • 如果两个字符串相等,则会返回0

  • 如果string1 小于 string2,则会返回< 0 的值;

    Perl学习手札 chm版
    Perl学习手札 chm版

    Perl学习手札是台湾perl高手写的一篇文章,特打包为chm版,方便大家阅读。 关于本书 1. 关于Perl 1.1 Perl的历史 1.2 Perl的概念 1.3 特色 1.4 使用Perl的环境 1.5 开始使用 Perl 1.6 你的第一个Perl程序 2. 标量变量(Scalar) 2.1 关于标量 2.1.1 数值 2.1.2 字符串 2.1.3 数字与字符串转换 2.2 使用你自己的变量 2.3 赋值 2.3.1 直接设定 2.3.2 还可以这样 2.4 运算 2.5 变量的输出/输入 2.

    Perl学习手札 chm版 0
    查看详情 Perl学习手札 chm版
  • 如果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>";
?>
登录后复制

输出:

1.png

strcmp()函数在比较字符串时,是区分大小写的。

<?php
$str1="PHP中文网";
$str2="php中文网";
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视频教程

 最后给大家推荐阅读一个经典课程《PHP字符串处理(玉女心经版)》,免费的~快来学习啊!

以上就是PHP字符串学习之比较两个字符串的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号