PHP字符串比较在不匹配时返回true

时间:2015-07-10 18:14:22

标签: php laravel laravel-4

为什么以下字符串比较返回true?

我正在使用Laravel框架4.2,Form :: select使用此方法比较选项值,并找到不应该匹配的匹配项。

  public function testStringComparison1()
  {
    $value = '8000003E-1408739159';
    $selected = '8000010E-1434656519';
    $b = false;
    if ((string) $value == (string) $selected) {
      $b = true;
    }
    $this->assertFalse($b);  // this fails, $b == true
  }

  public function testStringComparison2()
  {
    $value = '8000008E-1408740949';
    $selected = '8000010E-1434656519';
    $b = false;
    if ((string) $value == (string) $selected) {
      $b = true;
    }
    $this->assertFalse($b);  // this fails, $b == true
  }

1 个答案:

答案 0 :(得分:0)

如果你想确保类型匹配,不仅仅是值(类型转换的怪异东西),请使用===

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