PHP中的"!=="和"!="有什么区别吗?

13

!==!= 在 PHP 中有什么区别吗?


6
非常常见的重复问题,取决于您如何搜索答案:https://dev59.com/MXVD5IYBdhLWcg3wHn2d - spoulson
7个回答

34
!= 运算符比较值,而 !== 运算符同时比较数据类型。
这意味着以下代码:
var_dump(5!="5"); // bool(false)
var_dump(5!=="5"); // bool(true), because "5" and 5 are of different types

null!="null"不是false,这是错误的例子。同时,echo语句输出bool(true)为1,输出bool(false)为空。该代码片段的实际输出结果是11。 - VolkerK
@VolkerK — 我面前没有 PHP 解释器,但希望这个例子更准确。 :-) - Ben Blank
我的错误。感谢你的编辑,Ben Blank。希望原始发布者不会混淆。 - Salty
===== 在处理类型时有所不同 - 例如,数字字符串(“5”,“05”)将被视为数字进行比较,并且不同顺序的关联数组仍然可以相等。我会将 === 描述为“完全相同”,而不是“相等的值和类型”。 - Brilliand

8

!===运算符的反义词,用于检查不同类型之间的相等性。

!=====运算符的反义词,仅用于检查相同类型之间的相等性。


4

!=表示“不等于”,而!==表示“不全等”。例如:

'1' != 1   # evaluates to false, because '1' equals 1
'1' !== 1  # evaluates to true, because '1' is of a different type than 1

3

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

$num =  5

if ($num == "5") // true, since both contain 5
if ($num === "5") // false, since "5" is not the same type as 5, (string vs int)

2

=== 被称为恒等运算符,在其他问题的回答中有详细讨论。

这里其他人的回答也是正确的。


2

如果两个操作数的值不同,运算符!=返回true。

如果两个操作数的值不同或者它们的类型不同,运算符!==返回true。

祝好!


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接