基于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 相关文章推荐
解析csv数据导入mysql的方法
Jul 01 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
php开启openssl的方法
May 15 PHP
图解找出PHP配置文件php.ini的路径的方法
Aug 20 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
Jul 06 PHP
php处理json格式数据经典案例总结
May 19 PHP
PHP实现打包下载文件的方法示例
Oct 07 PHP
PHP封装curl的调用接口及常用函数详解
May 31 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
redis+php实现微博(二)发布与关注功能详解
Sep 23 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
Apr 07 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 中的4种标记风格介绍
2012/05/10 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
php获取远程文件大小
2015/10/20 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
window.onbeforeunload方法在IE下无法正常工作的解决办法
2010/01/23 Javascript
js 格式化时间日期函数小结
2010/03/20 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
使用JQuery FancyBox插件实现图片展示特效
2015/11/16 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
详解webpack编译速度提升之DllPlugin
2019/02/05 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
express框架下使用session的方法
2019/07/31 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
Python字符串的修改方法实例
2019/12/19 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
耐克巴西官方网站:Nike巴西
2016/08/14 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
简单的项目建议书模板
2014/03/12 职场文书
环保倡议书300字
2014/05/15 职场文书
建筑工地宣传标语
2014/06/18 职场文书
安全演讲稿开场白
2014/08/25 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
2015年端午节活动总结
2015/02/11 职场文书
奠基仪式致辞
2015/07/30 职场文书
学会感恩主题班会
2015/08/12 职场文书
详解NodeJS模块化
2021/06/15 NodeJs
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript
nginx rewrite功能使用场景分析
2022/05/30 Servers