【问题标题】:What's the difference between equal and identical comparison operators in PHP? [duplicate]PHP中相等和相同的比较运算符有什么区别? [复制]
【发布时间】:2011-06-11 14:06:48
【问题描述】:

可能重复:
How do the equality (== double equals) and identity (=== triple equals) comparison operators differ?

我知道 ===== 之间的基本区别,但是一些有经验的编码人员可以告诉我这两种情况的一些实际例子吗?

【问题讨论】:

标签: php


【解决方案1】:

== 检查两个操作数的值是否相等。 === 检查两个操作数的值和类型。

if("1" == 1)
   echo "true";
else
   echo "false";

上面会输出true

if("1" === 1)
   echo "true";
else
   echo "false";

上面会输出false

if("1" === (string)1)
   echo "true";
else
   echo "false";

上面会输出true

【讨论】:

    【解决方案2】:

    显示它的最简单方法是使用字符串。两个例子:

    echo ("007" === "7" ? "EQUAL!" : "not equal"); 
    echo ("007" == "7" ? "EQUAL!" : "not equal"); 
    

    【讨论】:

      【解决方案3】:

      除了@DavidT.的例子,更实际的例子如下:

      $foo = "Goo";
      $bar = "Good Morning";
      if (strpos($bar,$foo))
        echo "Won't be seen, returns false because the result is in fact 0";
      if (strpos($bar,$foo) !== false)
        echo "True, though 0 is returned it IS NOT false)";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-09
        • 2016-06-22
        • 2015-07-03
        • 2012-11-15
        相关资源
        最近更新 更多