我一直在看这个变种:
不相等
!=
不相等,相等
!==
哪一个是标准还是它们有不同的含义?
我猜测后者还检查值和名称,如果它是一个字符串,而 前者可能只检查价值......
答案 0 :(得分:19)
==
和!=
按值检查相等性,在PHP中,您可以比较某些值被认为是等效的不同类型。
例如,"" == 0
的计算结果为true
,即使一个是字符串而另一个是整数。
===
和!==
检查类型以及值。
因此,"" === 0
将评估为false
。
编辑:要添加另一个“类型杂耍”可能会让你感到惊讶的例子,试试这个:
var_dump("123abc" == 123);
提供bool(true)
!
答案 1 :(得分:6)
第二个是类型严格的。
"1" != 1; // false
"1" !== 1; // true because the first is a string, the second is a number
答案 2 :(得分:5)
!=
不等于值
!==
不等于值并输入
答案 3 :(得分:1)
在一个例子中:
"2" == 2 -> true
"2" === 2 -> false
"2" !== 2 -> true
"2" != 2 -> false
当您使用可以返回0
或false
例如strpos:您希望始终检查类型,而不仅仅是值。因为0 == false
但是0 !== false
。
因为如果字符串位于第一个位置,strpos可以返回0
。但这与false不一样,这意味着尚未找到该字符串。