【问题标题】:Is == in PHP a case-sensitive string comparison?== 在 PHP 中是区分大小写的字符串比较吗?
【发布时间】:2011-03-31 05:16:48
【问题描述】:

我无法在 php.net 上找到它。在 PHP 中用于比较字符串时,双等号 (==) 是否区分大小写?

【问题讨论】:

    标签: php string-comparison


    【解决方案1】:

    是的,== 区分大小写。

    您可以使用strcasecmp 进行不区分大小写的比较

    【讨论】:

      【解决方案2】:

      是的,但它会逐字节进行比较。

      如果您要比较 unicode 字符串,您可能希望先对它们进行规范化。请参阅Normalizer 类。

      示例(以 UTF-8 输出):

      $s1 = mb_convert_encoding("\x00\xe9", "UTF-8", "UTF-16BE");
      $s2 = mb_convert_encoding("\x00\x65\x03\x01", "UTF-8", "UTF-16BE");
      //look the same:
      echo $s1, "\n";
      echo $s2, "\n";
      var_dump($s1 == $s2); //false
      var_dump(Normalizer::normalize($s1) == Normalizer::normalize($s2)); //true
      

      【讨论】:

      • +1 表示它不是真正的字符串比较(它是二进制比较)。因此,它在技术上是不区分大小写的(尽管在 99.999% 的情况下它的行为与它相同)...
      【解决方案3】:

      是的,== 区分大小写。

      顺便说一句,对于不区分大小写的比较,请使用strcasecmp

      <?php
          $var1 = "Hello";
          $var2 = "hello";
          echo (strcasecmp($var1, $var2) == 0); // TRUE;
      ?>
      

      【讨论】:

        【解决方案4】:

        == 区分大小写,是的。

        要不敏感地比较字符串,您可以使用strtolower($x) == strtolower($y)strcasecmp($x, $y) == 0

        【讨论】:

          【解决方案5】:

          == 区分大小写,php 手册中的一些其他操作数让您熟悉

          http://www.php.net/manual/en/language.operators.comparison.php

          【讨论】:

            【解决方案6】:

            是的,== 区分大小写。对我来说最简单的方法是转换为大写然后比较。例如:

            $var = "Hello";
            if(strtoupper($var) == "HELLO") {
                echo "identical";
            }
            else {
                echo "non identical";
            }
            

            我希望它有效!

            【讨论】:

              【解决方案7】:

              您可以尝试与哈希函数进行比较

                if( md5('string1') == md5('string2') ) {
                  // strings are equal
                }else {
                  // strings are not equal
                }
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2023-03-22
                • 1970-01-01
                • 2015-08-21
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-05-27
                • 2021-05-09
                相关资源
                最近更新 更多