基于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 MYSQL中插入当前时间
Apr 06 PHP
使用php shell命令合并图片的代码
Jun 23 PHP
解析PHP中intval()等int转换时的意外异常情况
Jun 21 PHP
[原创]PHP简单开启curl的方法(测试可行)
Jan 11 PHP
YII CLinkPager分页类扩展增加显示共多少页
Jan 29 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
Mar 07 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
PHP进行批量任务处理不超时的解决方法
Jul 11 PHP
Yii实现文章列表置顶功能示例
Oct 18 PHP
php array_multisort 对数组进行排序详解及实例代码
Oct 27 PHP
PHP中STDCLASS用法实例分析
Nov 11 PHP
php生成二维码图片方法汇总
Dec 17 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
php向js函数传参的几种方法
2014/08/10 PHP
PHP页面实现定时跳转的方法
2014/10/31 PHP
PHP数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
php多进程中的阻塞与非阻塞操作实例分析
2020/03/04 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
javascript 限制输入和粘贴(IE,firefox测试通过)
2008/11/14 Javascript
JS 字符串连接[性能比较]
2009/05/10 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
用python代码做configure文件
2014/07/20 Python
对于Python的Django框架部署的一些建议
2015/04/09 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
梅尔倒谱系数(MFCC)实现
2019/06/19 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
css3发光搜索表单分享
2014/04/11 HTML / CSS
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
2015年党支部书记工作总结
2015/05/21 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
PHP正则表达式之RCEService回溯
2022/04/11 PHP