Php 为什么我们需要这个特殊的===运算符? 以前我使用C++和java,它们没有这个代码>==< /Cord>运算符。< /P>

Php 为什么我们需要这个特殊的===运算符? 以前我使用C++和java,它们没有这个代码>==< /Cord>运算符。< /P>,php,language-features,Php,Language Features,为什么他们不用它,而是用PHP这样的语言来管理它的键。因为PHP不是类型安全的。==比较2个值,但===比较这些值并检查它们的类类型是否相同 我相信“2”==2返回true,而“2”==2返回false。实际上,Java中的等于,C中的=就像php中的=一样。即“24”。等于(24)将返回false java和C#没有的等价物是PHP的=(即一个操作符/方法,使得“24”。fuzzyEquals(24)将返回true)。这是因为C#和Java是强类型的,这样的操作符违背了他们的理念。正如你所知,

为什么他们不用它,而是用PHP这样的语言来管理它的键。

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


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

实际上,Java中的
等于
,C中的
=
就像php中的
=
一样。即
“24”。等于(24)
将返回false


java和C#没有的等价物是PHP的
=
(即一个操作符/方法,使得
“24”。fuzzyEquals(24)
将返回true)。这是因为C#和Java是强类型的,这样的操作符违背了他们的理念。

正如你所知,这在JavaScript中是一样的,根据JSLint,应该始终用作类型检查,这在技术上使==冗余。但我想这只是个人偏好,当我们说“A等于B”时,这可能意味着几个完全不同的事情

  • A和B是一回事
  • A和B具有相同的值,即它们的值对于第三方来说是不可区分的
  • A和B可以转换为相等的字符串(或数字)
  • A和B具有相同的散列值

对于不同类型的等式,大多数语言都有不同的运算符或函数,请参见

参见: