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

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

【问题讨论】:

标签: php comparison operators


【解决方案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,了解哪些值相等 (==) 和哪些值相同 (===)。

            【讨论】:

              猜你喜欢
              • 2010-09-27
              • 2016-09-09
              • 2011-10-14
              • 2011-02-14
              • 1970-01-01
              • 1970-01-01
              • 2010-09-13
              相关资源
              最近更新 更多