基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解


Posted in PHP onMay 15, 2013

使用“===”来判断,至于它和“==”的区别,简单来说就是前者强调“identical(相同的,完全相同)”类型也要求一样;后者要求“equal(相等)”,值相同就可以了。或者使用strcmp来判断,但是这个能够告诉你两个字符串是否相等,但是无法告诉你在哪里不同。

一般能用 !=, == 比较两个对象是否相等,之所以说是两个对象,是因为他们不一定全部为字符串,也能为整型等等。比如

$a = "joe"; 
$b = "jerry"; 
if ($a != $b) 
{ 
    echo "不相等"; 
} 
else 
{ 
    echo "相等"; 
}

如果用  !== , === 比较的话,两个对象的类型要严格相等才能返回true;否则用==,!=则会将字符串自动转换成相应的类型,以便进行比较.
22 == "22"; // 返回 true 
22 === "22"; // 返回falsePHP 用于字符串比较的函数:strcmp(),strcasecmp(),strncasecmp(), strncmp(),他们都是 如果前者比后者大,则返回大于0 的整数;如果前者比后者小,则返回小于0 的整数;如果两者相等,则返回0.1)strcmp是用于 区分大小写 (即大小写敏感)的字符串比较:
2)echo strcmp("abcdd", "abcde"); // 返回 1 (>0), 比较的是 "b"和"b"
3)strcasecmp用于不区分大小写的字符串比较:
4)echo strcasecmp("abcdd", "abcde"); // 返回 -1 (<0), 比较的是"d"和"e"
strncmp用于比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
echo strncmp("abcdd", "abcde", 3); // 返回 1 (>0), 比较了 abc 和 abc
strncasecmp用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
echo strncasecmp("abcdd", "abcde", 3); // 返回 0, 比较了 abc 和 abc, 由于不区分大小写,所以两者是相同的。
更有一种情况是单单比较字符串大小,达不到我们预定的需求,比如照常理 10.gif 会比 5.gif 大,但如果应用上面几个函数,就会返回 -1,即表示 10.gif比5.gif,针对这种情况,php提供了两个自然对比的函数strnatcmp,strnatcasecmp:
echo strnatcmp("10.gif", "5.gif"); // 返回 1 (>0) 
echo strnatcasecmp("10.gif", "5.gif"); // 返回 1 (>0)

 

PHP 相关文章推荐
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 PHP
分页显示Oracle数据库记录的类之一
Oct 09 PHP
利用PHP创建动态图像
Oct 09 PHP
PHP访问MYSQL数据库封装类(附函数说明)
Dec 04 PHP
PHP中获取时间的下一周下个月的方法
Mar 18 PHP
php+js iframe实现上传头像界面无跳转
Apr 29 PHP
thinkPHP中分页用法实例分析
Dec 26 PHP
详解WordPress开发中的get_post与get_posts函数使用
Jan 04 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
php指定长度分割字符串str_split函数用法示例
Jan 30 PHP
php实现查询功能(数据访问)
May 23 PHP
php-fpm添加service服务的例子
Apr 27 PHP
解析dedecms空间迁移步骤详解
May 15 #PHP
基于php缓存的详解
May 15 #PHP
解析php中mysql_connect与mysql_pconncet的区别详解
May 15 #PHP
深入php之规范编程命名小结
May 15 #PHP
PHP+jQuery实现自动补全功能源码
May 15 #PHP
深入分析php之面向对象
May 15 #PHP
深入解析php之apc
May 15 #PHP
You might like
德生PL550的电路分析
2021/03/02 无线电
php简单分页类实现方法
2015/02/26 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
vue表单验证之禁止input输入框输入空格
2020/12/03 Vue.js
[02:20]DOTA2英雄基础教程 黑暗贤者
2013/12/19 DOTA
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
详解python中的Turtle函数库
2018/11/19 Python
windows上安装python3教程以及环境变量配置详解
2019/07/18 Python
Python使用itchat 功能分析微信好友性别和位置
2019/08/05 Python
python的常见矩阵运算(小结)
2019/08/07 Python
Python 函数绘图及函数图像微分与积分
2019/11/20 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
python实现手势识别的示例(入门)
2020/04/15 Python
Python虚拟环境venv用法详解
2020/05/25 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
2021/01/28 Python
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
外贸业务员求职信范文
2013/12/12 职场文书
促销活动总结
2014/04/28 职场文书
公司委托书格式范本
2014/09/16 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
python获取字符串中的email
2022/03/31 Python