基于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 相关文章推荐
PHPShop存在多个安全漏洞
Oct 09 PHP
PHP个人网站架设连环讲(三)
Oct 09 PHP
模仿OSO的论坛(一)
Oct 09 PHP
说明的比较细的php 正则学习实例
Jul 30 PHP
php牛逼的面试题分享
Jan 18 PHP
PHP获取数组最大值下标的方法
May 12 PHP
学习php设计模式 php实现合成模式(composite)
Dec 08 PHP
调试WordPress中定时任务的相关PHP脚本示例
Dec 10 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
Laravel中间件实现原理详解
Oct 09 PHP
简单谈谈PHP中的Reload操作
Dec 12 PHP
php5.x禁用eval的操作方法
Oct 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
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
2020/03/09 Javascript
Node快速切换版本、版本回退(降级)、版本更新(升级)
2021/01/07 Javascript
python处理文本文件并生成指定格式的文件
2014/07/31 Python
python中Flask框架简单入门实例
2015/03/21 Python
Python数据类型详解(一)字符串
2016/05/08 Python
Python编码类型转换方法详解
2016/07/01 Python
Python切换pip安装源的方法详解
2016/11/18 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
python 处理string到hex脚本的方法
2018/10/26 Python
python3实现raspberry pi(树莓派)4驱小车控制程序
2020/02/12 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
html5时钟实现代码
2010/10/22 HTML / CSS
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
2014年公务员转正工作总结
2014/11/07 职场文书
庆元旦主持词
2015/07/06 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
Python序列化模块JSON与Pickle
2022/06/05 Python