PHP中相等和相同的比较运算符有啥区别? [复制]

Posted

技术标签:

【中文标题】PHP中相等和相同的比较运算符有啥区别? [复制]【英文标题】: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?

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

【问题讨论】:

见***.com/questions/3641819/php-not-equal-to-and/…(比较!=!==但你明白了) php.net/manual/en/types.comparisons.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)";

【讨论】:

以上是关于PHP中相等和相同的比较运算符有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

根据你的理解,简要说明使用双等号(==)和equals()方法判断两个字符串是不是相等有啥区别

Bash 中的 [ 和 [[ 有啥区别? [复制]

php学习笔记-php中的比较运算符

PHP 相等(== 双等)和身份(=== 三等)比较运算符有何不同?

PHP 相等(== 双等)和身份(=== 三等)比较运算符有何不同?

JavaScript中==与===的区别