请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

一起开发

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

PHP比较字符串的函数strcmp()与strcasecmp()详解

发表于 2013-6-2 13:07 作者:phper
php结合memcache实现访问统计文章点击的计数
随着访问量的增大,点击数直接更新数据库已经不太可能了,数据库中点击的更新 ...
Web开发利器,简版开发手册助您快速开发(图
web开发,帮助手册是我们经常查询的,查函数、查属性等等,下面图片里综合了各开发手册 ...
本帖最后由 phper 于 2013-6-2 13:09 编辑

strcmp — 二进制安全字符串比较
        说明:intstrcmp( string$str1 , string$str2 )注意该比较区分大小写。
        参数:str1第一个字符串。        str2第二个字符串。
        返回值:如果 str1小于 str2,返回负数;如果 str1大于 str2,返回正数;二者相等则返回 0。
strcasecmp:
        定义函数 int strcasecmp (const char *s1, const char *s2);
        函数说明 strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。
        返回值 若参数s1和s2字符串相等则返回0。s1大于s2则返回大于0 的值,s1 小于s2 则返回小于0的值。        
        
使用“===”来判断,至于它和“==”的区别,简单来说就是前者强调“identical(相同的,完全相同)”类型也要求一样;后者要求“equal(相等)”,值相同就可以了。或者使用strcmp来判断,但是这个能够告诉你两个字符串是否相等,但是无法告诉你在哪里不同。
一般能用 !=, == 比较两个对象是否相等,之所以说是两个对象,是因为他们不一定全部为字符串,也能为整型等等。比如
  1. $a = "joe";
  2.         $b = "jerry";
  3.         if ($a != $b) {
  4.                 echo "不相等";
  5.         }
  6.         else {
  7.                 echo "相等";
  8.         }
复制代码
如果用 !== , === 比较的话,两个对象的类型要严格相等才能返回true;否则用==,!=则会将字符串自动转换成相应的类型,以便进行比较
  1. 22 == "22"; // 返回 true
  2. 22 === "22"; // 返回falsePHP 用于字符串比较的函数:strcmp(),strcasecmp(),strncasecmp(), strncmp(),他们都是 如果前者比后者大,则返回大于0 的整数;如果前者比后者小,则返回小于0 的整数;如果两者相等,则返回0.

  3. 1)strcmp是用于 区分大小写 (即大小写敏感)的字符串比较:
  4. 2)echo strcmp("abcdd", "abcde"); // 返回 1 (>0), 比较的是 "b"和"b"
  5. 3)strcasecmp用于不区分大小写的字符串比较:
  6. 4)echo strcasecmp("abcdd", "abcde"); // 返回 -1 (<0), 比较的是"d"和"e"
  7. strncmp用于比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
  8. echo strncmp("abcdd", "abcde", 3); // 返回 1 (>0), 比较了 abc 和 abc
  9. strncasecmp用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:
  10. echo strncasecmp("abcdd", "abcde", 3); // 返回 0, 比较了 abc 和 abc, 由于不区分大小写,所以两者是相同的。
  11. 更有一种情况是单单比较字符串大小,达不到我们预定的需求,比如照常理 10.gif 会比 5.gif 大,但如果应用上面几个函数,就会返回 -1,即表示 10.gif比5.gif,针对这种情况,php提供了两个自然对比的函数strnatcmp,strnatcasecmp:
  12. echo strnatcmp("10.gif", "5.gif"); // 返回 1 (>0)
  13. echo strnatcasecmp("10.gif", "5.gif"); // 返回 1 (>0)
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|一起开发   

GMT+8, 2017-9-23 20:47 , Processed in 0.115928 second(s), 27 queries .

Powered by Discuz! X2.5 Licensed

© 2001-2012 Comsenz Inc.

回顶部