PHP 中的相等性比较运算符(== 双等号)和恒等性比较运算符(=== 三等号)有什么区别?

发布时间 2023-11-11 22:30:04作者: 小满独家

内容来自 DOC[ https://q.houxu6.top/?s=PHP 中的相等性比较运算符(== 双等号)和恒等性比较运算符(=== 三等号)有什么区别?

](https://q.houxu6.top/?s=PHP 中的相等性比较运算符(%3D%3D 双等号)和恒等性比较运算符(%3D%3D%3D 三等号)有什么区别? )

===== 之间有什么区别?

  • 宽松的 == 比较如何工作?
  • 严格的 === 比较如何工作?

有哪些有用的示例呢?


===== 的区别

松散相等运算符 == 和严格相等运算符 === 的区别在 手册 中有明确解释:

比较运算符

示例 名称 结果
$a == $b 相等 如果在类型转换后 $a 等于 $b,则返回 TRUE。
$a === $b 严格相等 如果 $a 等于 $b 并且它们的类型相同,则返回 TRUE。

松散相等比较 ==

如果你使用 == 运算符或其他使用松散比较的运算符,比如 !=<>==,你必须始终关注上下文来确定何时以及为什么会发生转换,以理解正在发生的事情。

转换规则

类型比较表格

你可以参考并查看手册中的比较表格:链接

TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE
FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE
1 TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE
-1 TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
"1" TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE
array() FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE
"php" TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE

严格相等比较 ===

如果你使用 === 运算符或其他使用严格比较的运算符,比如 !=====,你可以始终确保类型不会发生神奇转换,因为不会进行转换。因此,对于严格比较,类型和值必须完全相同,不仅仅是值。

类型比较表格

你可以参考并查看手册中的比较表格:链接

使用 === 的严格比较

TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE
FALSE
1
0
-1
"1"
"0"
"-1"
NULL
array()
"php"
""