6

我不断看到这种变化:

不相等 !=

不相等,相等

!==

哪个是标准或它们有不同的含义?

我猜后者也会检查值和名称(如果它是字符串),而前者可能只检查值......

4

4 回答 4

19

==并按!=值检查相等性,在 PHP 中,您可以比较某些值被认为是等效的不同类型。

例如,"" == 0计算结果为true,即使一个是字符串而另一个是整数。

===!==检查类型和值。

因此,"" === 0将评估为false


编辑:要添加另一个示例,说明这种“类型杂耍”如何让你脱颖而出,试试这个:

var_dump("123abc" == 123);

bool(true)

于 2009-12-04T11:08:17.173 回答
6

第二个是类型严格的。

"1" != 1;  // false
"1" !== 1; // true because the first is a string, the second is a number
于 2009-12-04T11:08:23.037 回答
5

!=值不相等

!==和类型不相等

于 2009-12-04T11:07:32.103 回答
1

在一个例子中:

"2" == 2 -> true

"2" === 2 -> false


"2" !== 2 -> true

"2" != 2 -> false

当您使用某些可以返回0false

例如 strpos:您也希望始终在那里检查类型,而不仅仅是值。因为0 == false但是0 !== false

因为strpos可以0在字符串位于第一个位置时返回。但这与 false 不同,这意味着尚未找到该字符串。

于 2009-12-04T11:10:15.920 回答