PHP 中的 !== 和 != 有区别吗?

Posted

技术标签:

【中文标题】PHP 中的 !== 和 != 有区别吗?【英文标题】:Is there a difference between !== and != in PHP? 【发布时间】:2010-11-11 11:14:53 【问题描述】:

php!==!= 有区别吗?

【问题讨论】:

非常常见的重复问题,具体取决于您搜索答案的方式:***.com/questions/80646/… 【参考方案1】:

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

这意味着:

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

【讨论】:

null!="null" 不是假的,错误的例子。还 echo 为 bool(true) 打印 1,为 bool(false) 打印任何内容。代码sn -p的实际输出是11。 @VolkerK — 我面前没有 PHP 解释器,但希望这是一个更准确的示例。 :-) 我的错误。感谢您的编辑,本空白。希望原始海报没有混淆。 == 对类型的处理也与=== 略有不同——例如,将数字字符串(“5”、“05”)作为数字进行比较,不同顺序的关联数组仍然可以平等的。我会将=== 描述为“完全相同”,而不是“相等的值和类型”。【参考方案2】:

!=== 运算符的逆运算符,它检查类型之间的相等性

!===== 运算符相反,后者仅检查相同类型的事物是否相等。

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

=== 称为身份运算符。并在其他问题的回复中详细讨论。

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

【讨论】:

【参考方案6】:

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

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

干杯

【讨论】:

【参考方案7】:

请参阅PHP type comparison tables,了解哪些值相等 (==) 和哪些值相同 (===)。

【讨论】:

以上是关于PHP 中的 !== 和 != 有区别吗?的主要内容,如果未能解决你的问题,请参考以下文章

javascript和php的正则表达式有区别吗

Python中的“字符串”和“字符串”有啥区别吗? [复制]

Symfony2 / Doctrine中的实体和模型有啥区别

php和c,c++的区别是啥?

php单引号中可以包含双引号吗

Javascript 闭包 vs PHP 闭包,有啥区别?