如果我在PHP中不使用===或!==,可能会出错

时间:2011-12-10 19:47:01

标签: php if-statement comparison operators

  

可能重复:
  php == vs === operator
  Is there a difference between !== and != in PHP?

在PHP中,if命令的条件包含运算符===!==

我从不使用它们。所以我想知道我们什么时候才能真正打电话给他们?

E.g。

if (FALSE !=  someMethod() ) {
}

if (FALSE !== someMethod() ) {
}

第一个if会出现什么问题?

3 个答案:

答案 0 :(得分:4)

0 == '' == null == false == array()

如果你需要知道其中两个之间的区别,你需要===。

http://php.net/manual/en/function.strpos.php

int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

strpos('apple', 'a') == 0

strpos('apple', 'b') == false

如果没有===,你就不会知道'apple'在第一个位置是否有'a',或者它是否不存在。

答案 1 :(得分:3)

举个例子:

$str = '*Hello*World*';
if (FALSE != strpos($str, '*')){
    // Echo if string has an '*' in it!
    echo $str;
}

这不起作用,因为strpos()返回第一个匹配的索引。在这种情况下,它返回0. FALSE == 0,但FALSE !== 0

答案 2 :(得分:0)

当您使用==!=' instead of === and '!==时,PHP会使用松散比较。松散的比较意味着,类型在“相似性”上进行比较。要概述类型的比较方式,请查看here