PHP中相等和相同的比较运算符之间有什么区别?

时间:2011-01-19 07:22:06

标签: php

  

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

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

3 个答案:

答案 0 :(得分:21)

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

除了@ 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)";