zoukankan      html  css  js  c++  java
  • PHP 中 字符串的 比较函数 strcmp() strcasecmp()

      使用“===”来判断,至于它和“==”的区别,简单来说就是前者强调“identical(相同的,完全相同)”类型也要求一样;后者要求“equal(相等)”,值相同就可以了。或者使用strcmp来判断,但是这个能够告诉你两个字符串是否相等,但是无法告诉你在哪里不同。

      一般能用 !=, == 比较两个对象是否相等,之所以说是两个对象,是因为他们不一定全部为字符串,也能为整型等等。比如

    $a = "joe"; 
    $b = "jerry"; 
    if ($a != $b) 
    { 
        echo "不相等"; 
    } 
    else 
    { 
        echo "相等"; 
    }

      如果用  !== , === 比较的话,两个对象的类型要严格相等才能返回true;否则用==,!=则会将字符串自动转换成相应的类型,以便进行比较.

    22 == "22"; // 返回 true 
    22 === "22"; // 返回false

      PHP 用于字符串比较的函数: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)

  • 相关阅读:
    c++和java(c#)之间的pk
    C语言中.h和.c文件解析
    怎样花两年时间去面试一个人
    进程调度算法模拟
    1079 中国剩余定理
    Educational Codeforces Round 50 (ABCD)
    解决Android Studio默认AppTheme 没有lable标签,不显示等问题
    Codeforces Round #508(ABCD)
    牛客OI赛制测试赛2
    deepin关机卡在图标界面 mysql Community...10min
  • 原文地址:https://www.cnblogs.com/buyanyu520/p/2984309.html
Copyright © 2011-2022 走看看