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 中的 !== 和 != 有区别吗?的主要内容,如果未能解决你的问题,请参考以下文章
Python中的“字符串”和“字符串”有啥区别吗? [复制]