2010-09-20 29 views

Respuesta

3

Porque PHP no es seguro. == compara 2 valores, pero === compara los valores Y verifica si sus tipos de clase son iguales.

Creo que "2" == 2 devuelve verdadero, mientras que "2" === 2 devuelve falso.

10

En realidad equals en Java y == en C# actúan como === does in php. Es decir. "24".equals(24) devolverá falso.

Lo que Java y C# no tienen es equivalente a PHP == (es decir, un operador/método tal que "24".fuzzyEquals(24) devolvería verdadero). Y eso es porque C# y Java están fuertemente tipados y tal operador estaría en contra de su filosofía.

0

Para que lo sepas, esto es lo mismo en JavaScript y, de acuerdo con JSLint SIEMPRE debe utilizarse como un tipo de verificación, que técnicamente hace == redundante. Pero supongo que eso es sólo preferencia personal

2

cuando decimos "A es igual a B" esto puede significar varias cosas muy diferentes

  • A y B son la misma cosa
  • A y B tienen el mismo valor, es decir, sus valores no son distinguibles para un tercero
  • a y B se pueden convertir en cuerdas (o números) que son iguales
  • a y B tienen el mismo valor hash

etc

la mayoría de los idiomas tienen diferentes operadores o funciones para los diferentes tipos de igualdad, ver http://en.wikipedia.org/wiki/Equality_%28relational_operator%29#Object_identity_vs._Content_equality