基于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安全防范技巧分享
Nov 03 PHP
PHP写的求多项式导数的函数代码
Jul 04 PHP
php异常处理使用示例
Feb 25 PHP
理解PHP中的stdClass类
Apr 18 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
PHP连接MSSQL方法汇总
Feb 05 PHP
PHP计算日期相差天数实例分析
Feb 23 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
PHP删除数组中指定下标的元素方法
Feb 03 PHP
PHP+Oracle本地开发环境搭建方法详解
Apr 01 PHP
php xhprof使用实例详解
Apr 15 PHP
laravel框架中视图的基本使用方法分析
Nov 23 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
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
浅谈php调用python文件
2019/03/29 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
如何获取select下拉框的值(option没有及有value属性)
2013/11/08 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
微信小程序引入VANT组件的方法步骤
2019/09/19 Javascript
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
Python实现随机选择元素功能
2017/09/14 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
python用户管理系统
2018/03/13 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
装修五一活动策划案
2014/01/23 职场文书
工厂车间标语
2014/06/19 职场文书
纪律教育月活动总结
2014/08/26 职场文书
教师自查自纠材料
2014/10/14 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
2015七夕情人节宣传语
2015/07/14 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书