两者之间有区别吗!==还有!=在PHP中?

两者之间有区别吗!==还有!=在PHP中?,php,comparison,operators,Php,Comparison,Operators,之间有区别吗==和=吗?的=运算符比较值,而==运算符也比较类型 这意味着: var_dump(5!="5"); // bool(false) var_dump(5!=="5"); // bool(true), because "5" and 5 are of different types !==检查类型和值,!=只检查值 $num = 5 if ($num == "5") // true, since both contain 5 if ($num === "5") // false,

之间有区别吗==
=吗?

=运算符比较值,而
==运算符也比较类型

这意味着:

var_dump(5!="5"); // bool(false)
var_dump(5!=="5"); // bool(true), because "5" and 5 are of different types

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

$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)

=
=
运算符相反,后者检查类型之间的相等性


==
==
运算符的逆运算符,它只检查相同类型事物的相等性。

===称为标识运算符。并在其他问题的回答中详细讨论

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

=
表示“不相等”,而
==表示“不相同”。例如:

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

请参阅关于哪些值相等(
=
)以及哪些值相同(
==
)的说明。

运算符
=返回true

操作员
==返回true


干杯

非常常见的重复问题,取决于您搜索答案的方式:空=“null”不是错误的示例。此外,echo打印1表示布尔(真),而不打印布尔(假)。代码片段的实际输出是11。@VolkerK-我面前没有PHP解释器,但希望这是一个更准确的示例。:-)我的错误。谢谢你的编辑,本·布兰克。希望原始海报没有混淆。
==
对类型的处理也与
==
略有不同-例如,数字字符串(“5”、“05”)被比较为数字,不同顺序的关联数组仍然可以相等。我会将
==
描述为“完全相同”,而不是“相同的值和类型”。