基于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 csv操作类代码
Dec 14 PHP
php 删除记录同时删除图片文件的实现代码
May 12 PHP
php 带逗号千位符数字的处理方法
Jan 10 PHP
php模拟js函数unescape的函数代码
Oct 20 PHP
编写php应用程序实现摘要式身份验证的方法详解
Jun 08 PHP
深入PHP变量存储的详解
Jun 13 PHP
浅析php中jsonp的跨域实例
Jun 21 PHP
PHP中数组定义的几种方法
Sep 01 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
May 12 PHP
PHP经典面试题集锦
Mar 19 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
Sep 22 PHP
PHP实现 APP端微信支付功能
Jun 22 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数据库开发知多少
2006/10/09 PHP
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
2013/04/22 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
jQuery load方法用法集锦
2011/12/06 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
基于JavaScript 类的使用详解
2013/05/07 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
jQuery实现弹窗居中效果类似alert()
2017/02/27 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
axios全局请求参数设置,请求及返回拦截器的方法
2018/03/05 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
在Django的URLconf中使用多个视图前缀的方法
2015/07/18 Python
Python使用sorted排序的方法小结
2017/07/28 Python
python自定义函数实现一个数的三次方计算方法
2019/01/20 Python
python模块导入的方法
2019/10/24 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
python全栈开发语法总结
2020/11/22 Python
opencv python 对指针仪表读数识别的两种方式
2021/01/14 Python
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
在校生钳工实习自我鉴定
2013/09/19 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python