基于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
Oct 09 PHP
php结合飞信 免费天气预报短信
May 07 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
Jul 18 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
Aug 08 PHP
php不用正则验证真假身份证
Nov 06 PHP
php常用的安全过滤函数集锦
Oct 09 PHP
推荐几个开源的微信开发项目
Dec 28 PHP
php实现简单爬虫的开发
Mar 28 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
Nov 25 PHP
php中遍历二维数组并以表格的形式输出的方法
Jan 03 PHP
yii2.0整合阿里云oss删除单个文件的方法
Sep 19 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
关于Intype一些小问题的解决办法
2008/03/28 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
WordPress中编写自定义存储字段的相关PHP函数解析
2015/12/25 PHP
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
浅析PHP echo 和 print 语句
2020/06/30 PHP
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
常用的JQuery函数及功能小结
2016/03/24 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
2016/05/20 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
微信小程序自定义toast的实现代码
2018/11/16 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
总结Python中逻辑运算符的使用
2015/05/13 Python
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
HTML5中的Web Notification桌面通知功能的实现方法
2019/07/29 HTML / CSS
校园文化建设方案
2014/02/03 职场文书
文秘大学生求职信
2014/02/25 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
庆六一开幕词
2015/01/29 职场文书
质检员工作总结2015
2015/04/25 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang