PHP 中的相等性比较运算符(== 双等号)和恒等性比较运算符(=== 三等号)有什么区别?
内容来自 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" | 假 | 假 | 假 | 假 | 假 | 假 | 假 | 假 | 假 | 假 | 真 | 假 |
| "" | 假 | 假 | 假 | 假 | 假 | 假 | 假 | 假 | 假 | 假 | 假 | 真 |

浙公网安备 33010602011771号