可能的重复项:
PHP == vs === 运算符
PHP 中的 !== 和 != 之间有区别吗?
在 PHP 中,if
命令的条件包含运算符 ===
和 !==
。
我从不使用它们。所以我想知道我们什么时候真正需要打电话给他们?
例如
if (FALSE != someMethod() ) {
}
if (FALSE !== someMethod() ) {
}
第一if
可能出现什么问题?
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",或者它是否不存在。
举这样一个例子:
$str = '*Hello*World*';
if (FALSE != strpos($str, '*')){
// Echo if string has an '*' in it!
echo $str;
}
这是行不通的,因为 strpos(( 返回第一个匹配项的索引。在本例中,它返回 0。 FALSE == 0
,但FALSE !== 0
.
PHP 在使用 ==
和 !=' instead of
=== and '!==
时使用松散比较。松散比较意味着,类型在"相似性"上进行比较。要大致了解类型的比较方式,请查看此处