【问题标题】:what is the difference between == and ===? [duplicate]== 和 === 有什么区别? [复制]
【发布时间】:2013-02-13 00:22:38
【问题描述】:

我正在学习 cakephp,我看到了很多条件,例如:

if( x === y){
}

我已经找过了,但我什么也没找到。

【问题讨论】:

标签: php


【解决方案1】:

== 比较两个变量的值。如果它们属于不同类型,则将它们转换为通用类型,然后进行比较。

另一方面,=== 更严格。它要求两侧也是相同的类型。

php> = 5 == "5"
true
php> = 5 === "5"
false

【讨论】:

    【解决方案2】:

    == 会进行自动类型转换,=== 不会

    这意味着:

    0 == "0" 的计算结果为 TRUE,因为在内部比较字符串和数字时,使用 == 时字符串会转换为数字。

    0 === "0" 计算结果为 FALSE,没有进行类型转换,整数 0 不等于字符串。

    documentationmore documentation 中的更多信息。

    【讨论】:

    • 另外 0 == "something" 评估为真。这就是为什么在处理字符串或可以使用字符串时不使用严格比较的糟糕编码的原因。有关详细信息,请参阅此处的last chapter。规则应该“尽可能严格”。
    猜你喜欢
    • 2015-11-23
    • 2011-04-26
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2023-03-10
    相关资源
    最近更新 更多