可能重复:
php == vs === operator
Is there a difference between !== and != in PHP?
在PHP中,if
命令的条件包含运算符===
和!==
。
我从不使用它们。所以我想知道我们什么时候才能真正打电话给他们?
E.g。
if (FALSE != someMethod() ) {
}
if (FALSE !== someMethod() ) {
}
第一个if
会出现什么问题?
答案 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