He usado C++ y Java antes y no tienen este operador ===
.¿Por qué necesitamos este operador especial ===?
¿Cómo es que se las arreglan sin ella, pero en idiomas como PHP es su clave.
He usado C++ y Java antes y no tienen este operador ===
.¿Por qué necesitamos este operador especial ===?
¿Cómo es que se las arreglan sin ella, pero en idiomas como PHP es su clave.
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.
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.
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
cuando decimos "A es igual a B" esto puede significar varias cosas muy diferentes
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
Ver: http://php.net/manual/en/language.operators.comparison.php – NullUserException