为什么我们需要这个特殊的===运算符?

时间:2010-09-20 07:48:01

标签: php language-features

之前我使用过C ++和Java,但他们没有===运算符。

他们如何在没有它的情况下进行管理,但在PHP这样的语言中是关键。

4 个答案:

答案 0 :(得分:10)

实际上Java中的equals和C#中的==就像===中的那样。即"24".equals(24)将返回false。

java和C#没有等价的是PHP的==(即"24".fuzzyEquals( 24 )将返回true的运算符/方法)。那是因为C#和Java是强类型的,这样的运算符会违背他们的理念。

答案 1 :(得分:3)

因为PHP不是类型安全的。 ==比较2个值,但===比较值并检查它们的类类型是否相同。

我相信“2”== 2返回true,而“2”=== 2则返回false。

答案 2 :(得分:2)

当我们说“A等于B”时,这可能意味着几件截然不同的事情

  • A和B是一回事
  • A和B具有相同的值,即它们的值无法与第三方区分
  • A和B可以转换为相等的字符串(或数字)
  • A和B具有相同的哈希值

对于不同类型的平等,大多数语言都有不同的运算符或函数,请参阅http://en.wikipedia.org/wiki/Equality_%28relational_operator%29#Object_identity_vs._Content_equality

答案 3 :(得分:0)

您也知道,这在JavaScript中是相同的,根据JSLint,应始终用作类型检查,这在技术上会使==冗余。但我想这只是个人偏好