基于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 相关文章推荐
PHP XML数据解析代码
May 26 PHP
php 安全过滤函数代码
May 07 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
Feb 14 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
php删除左端与右端空格的方法
Nov 29 PHP
php打造智能化的柱状图程序,用于报表等
Jun 19 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
Feb 15 PHP
php面向对象值单例模式
May 03 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
Sep 15 PHP
PHP使用PDO访问oracle数据库的步骤详解
Sep 29 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
Sep 13 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
提问的智慧
2006/10/09 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
2019/02/15 PHP
Javascript this指针
2009/07/30 Javascript
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
javascript 隔行换色函数代码
2010/10/24 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
jquery搜索框效果实现方法
2015/01/16 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
基于JavaScript实现类名的添加与移除
2017/04/23 Javascript
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
2018/09/15 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
Python functools模块学习总结
2015/05/09 Python
Python初学时购物车程序练习实例(推荐)
2017/08/08 Python
Python subprocess模块详细解读
2018/01/29 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
python障碍式期权定价公式
2019/07/19 Python
Linux不知道文件后缀名怎么判断文件类型
2012/04/26 面试题
大学生交通专业求职信
2014/09/01 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
详解MySQL中的主键与事务
2021/05/27 MySQL