基于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常用Output和ptions/Info函数集介绍
Jun 19 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
Jun 27 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
PHP实现的简易版图片相似度比较
Jan 07 PHP
PHP的命令行命令使用指南
Aug 18 PHP
php计算年龄精准到年月日
Nov 17 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
Jan 18 PHP
thinkPHP2.1自定义标签库的导入方法详解
Jul 20 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
Oct 10 PHP
php实现用户登陆简单实例
Apr 04 PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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
windows下配置php5.5开发环境及开发扩展
2014/12/25 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
MSN消息提示类
2006/09/05 Javascript
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
基于JavaScript的数据结构队列动画实现示例解析
2020/08/06 Javascript
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
python网络爬虫采集联想词示例
2014/02/11 Python
零基础写python爬虫之神器正则表达式
2014/11/06 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
2018/07/26 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
Keras自定义IOU方式
2020/06/10 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
Python实现随机爬山算法
2021/01/29 Python
奥地利网上书店:Weltbild
2017/07/14 全球购物
高中运动会广播稿
2014/01/21 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
2014年科研工作总结
2014/12/03 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
详解Oracle块修改跟踪功能
2021/11/07 Oracle
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android