【问题标题】:case insensitive comparing in PHPPHP中不区分大小写的比较
【发布时间】:2012-04-18 07:40:18
【问题描述】:

PHP 中是否有允许不区分大小写比较的运算符?

而不是执行以下操作:

if (strtolower("A") == strtolower("a") )

我想我正在寻找类似的东西:

if ^("A" == "a")   

^ 告诉 php 忽略基于大小写的比较。

是的,我确实有一个疯狂的想象力。 :)

【问题讨论】:

标签: php case-insensitive string-comparison


【解决方案1】:

您可以使用stricmp

if(!strcasecmp('a', 'A')) echo 'strings are equal';

【讨论】:

  • 为什么需要 !在那里?
  • @AverageJoe:因为strcasecmp 返回 0 如果两个字符串相等(忽略大小写)。否则它会返回 +1 或 -1,具体取决于哪个字符串“更小”(如果您要对它们进行排序)——请查看文档
  • 所以它比输入 ==0 更好。节省打字。我不能说可读性,这是最好的,但可以肯定它可以节省打字。另一方面, ==0 的东西也不好读。这是php!它总是一种难以处理的语言。谢谢你。
  • not 运算符 (!) 和 == 0大部分是等效的。在这种情况下,它归结为个人偏好或项目政策。
【解决方案2】:

您可以为此使用strcasecmp。只需检查它是否返回 0。

if (strcasecmp("A", "a") == 0) {
    // yes
}

【讨论】:

    【解决方案3】:

    【讨论】:

      【解决方案4】:

      你可以使用http://www.php.net/manual/en/function.strcasecmp.phpstrcasecmp

      if (strcasecmp("A", "a") == 0) {
          echo 'OK';
      }
      

      谢谢

      :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-11
        • 2011-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-28
        相关资源
        最近更新 更多