【问题标题】:== operator for string [duplicate]== 字符串运算符 [重复]
【发布时间】:2015-03-09 05:03:00
【问题描述】:

为什么即使变量不相等,这段代码也会回显Yes.

$a = '0e462097431906509019562988736854';
$b = '0e830400451993494058024219903391';

if( $a == $b ) echo 'Yes.';
else echo 'No!';

【问题讨论】:

标签: php string operators


【解决方案1】:

两者都将被视为数字,并且 PHP 之前在数字存储方面存在限制。 所以检查一下。

尝试使用“===”。它还会检查类型,所以这些不会转换为数字。

请参阅此question 及其答案。

【讨论】:

    【解决方案2】:

    您需要strcmp,而不是相等运算符。

    【讨论】:

      【解决方案3】:

      尝试一下,使用 strcmp 函数:

      if(int strcmp ($a,$b)===0) echo 'Yes.';
      else echo 'No!';
      

      【讨论】:

        【解决方案4】:

        尝试使用“===”而不是“==”。

        '==' 的比较“较弱”,因为它不检查类型。

        另一方面,'===' 也会检查类型,并且在比较两个事物时更明确通常是一种好习惯。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-20
          • 2015-01-11
          • 1970-01-01
          • 2015-10-20
          • 2012-11-11
          • 1970-01-01
          相关资源
          最近更新 更多