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

===之间有什么区别

  • 松散的==比较是如何工作的
  • 严格的==比较到底是如何工作的

有什么有用的例子吗

===

手册中详细解释了松散的==相等运算符和严格的==相同运算符之间的区别:

比较运算符

┌──────────┬───────────┬───────────────────────────────────────────────────────────┐
│ 实例│ 名称│ 后果│
├──────────┼───────────┼───────────────────────────────────────────────────────────┤
│$a==b美元│ 相同的│ 如果键入杂耍后$a等于$b,则为TRUE。│
│$a==$b│ 完全相同的│ 如果$a等于$b,且类型相同,则为TRUE。│
└──────────┴───────────┴───────────────────────────────────────────────────────────┘

松散地==相等比较

如果您使用的是==运算符,或使用松散比较的任何其他比较运算符,如=,&lt&燃气轮机==,您必须始终查看上下文,以了解转换的内容、位置和原因,从而了解正在发生的事情

转换规则

  • 转换为布尔值
  • 转换为整数
  • 转换为浮动
  • 转换为字符串
  • 转换为数组
  • 转换为对象
  • 转化为资源
  • 转换为空

类型比较表

作为参考和示例,您可以在手册中看到比较表:

==

┌─────────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬─────────┬───────┬───────┐
│         │ 符合事实的│ 错误的│   1.│   0│  -1.│  "1"  │  "0"  │ "-1"  │ 无效的│ 数组()│ “php”│  ""   │
├─────────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼─────────┼───────┼───────┤
│ 符合事实的│ 符合事实的│ 错误的│ 符合事实的│ 错误的│ 符合事实的│ 符合事实的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 符合事实的│ 错误的│
│ 错误的│ 错误的│ 符合事实的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 符合事实的│ 符合事实的│ 错误的│ 符合事实的│
│ 1.│ 符合事实的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│
│ 0│ 错误的│ 符合事实的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 符合事实的│ 错误的│ 符合事实的│ 符合事实的│
│ -1.│ 符合事实的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│
│ "1"     │ 符合事实的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│
│ "0"     │ 错误的│ 符合事实的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│
│ "-1"    │ 符合事实的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│
│ 无效的│ 错误的│ 符合事实的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 符合事实的│ 错误的│ 符合事实的│
│ 数组()│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 符合事实的│ 错误的│ 错误的│
│ “php”│ 符合事实的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 错误的│
│ ""      │ 错误的│ 符合事实的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 符合事实的│
└─────────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴─────────┴───────┴───────┘

严格的==相同比较

如果您使用的是==运算符,或使用严格比较的任何其他比较运算符,如====,则始终可以确保类型不会发生神奇的变化,因为不会进行转换。因此,通过严格比较,类型和值必须相同,而不仅仅是值

类型比较表

作为参考和示例,您可以在手册中看到比较表:

===

┌─────────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬─────────┬───────┬───────┐
│         │ 符合事实的│ 错误的│   1.│   0│  -1.│  "1"  │  "0"  │ "-1"  │ 无效的│ 数组()│ “php”│  ""   │
├─────────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼─────────┼───────┼───────┤
│ 符合事实的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│
│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│
│ 1.│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│
│ 0│ 错误的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│
│ -1.│ 错误的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│
│ "1"     │ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│
│ "0"     │ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│
│ "-1"    │ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│ 错误的│
│ 无效的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│ 错误的│
│ 数组()│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 错误的│ 错误的│
│ “php”│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 符合事实的│ 错误的│
│ ""      │ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 错误的│ 符合事实的│
└─────────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴─────────┴───────┴───────┘

发表评论