基于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制作的中文拼音首字母工具类
Dec 11 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
PHP学习笔记(三):数据类型转换与常量介绍
Apr 17 PHP
jquery获取多个checkbox的值异步提交给php的方法
Jun 24 PHP
PHP下的浮点运算不准的解决方法
Oct 27 PHP
利用PHP生成CSV文件简单示例
Dec 21 PHP
Ubuntu 16.04下安装PHP 7过程详解
Mar 28 PHP
Laravel实现表单提交
May 07 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
php 使用mpdf实现指定字段配置字体样式的方法
Jul 29 PHP
YII2框架中actions的作用与使用方法示例
Mar 13 PHP
利用ajax+php实现商品价格计算
Mar 31 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懒人函数 自动添加数据
2011/06/28 PHP
Windows中使用计划任务自动执行PHP程序实例
2014/05/09 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
PHP对象实例化单例方法
2017/01/19 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
JQuery复选框全选效果如何实现
2020/05/08 jQuery
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
利用python爬取有道词典的方法
2020/12/08 Python
pandas实现导出数据的四种方式
2020/12/13 Python
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
营销人才自我鉴定范文
2013/12/25 职场文书
《草原》教学反思
2014/02/15 职场文书
质检部经理岗位职责
2014/02/19 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
学校运动会霸气口号
2014/06/07 职场文书
检讨书格式
2015/01/23 职场文书
新郎新娘致辞
2015/07/31 职场文书