"608E-4234"
es float number format, por lo que se convertirán en números cuando se comparan.
608E-4234
y 272E-3063
serán ambos float(0)
porque son demasiado pequeños.
Para ==
en php,
Si se compara un número con una cuerda o la comparación incluye cadenas numéricas, entonces cada cadena se convierte en un número y la comparación realiza numéricamente.
http://php.net/manual/en/language.operators.comparison.php
Atención:
¿Qué pasa con el comportamiento en javascript que también tiene tanto ==
y ===
?
La respuesta es que el comportamiento es diferente de PHP. En javascript, si compara dos valores con el mismo tipo, ==
es lo mismo que ===
, por lo que no se aplicará el tipo de conversión para comparar con dos valores del mismo tipo.
En javascript:
608E-4234 == 272E-3063 // true
608E-4234 == "272E-3063" // true
"608E-4234" == 272E-3063 // true
"608E-4234" == "272E-3063" // false (Note: this is different form PHP)
Así que en javascript, cuando se conoce el tipo del resultado, se puede utilizar en lugar de ==
===
para salvar un carácter.
Por ejemplo, typeof
operador siempre devuelve una cadena, por lo que sólo podría utilizar
typeof foo == 'string'
en lugar de typeof foo === 'string'
sin daño.
echo 608E-4234 = 0; echo 272E-3063 = 0; 0 == 0 –
¿Qué dice http://php.net/strcmp? – Bokw
[PHP está escrito de manera débil/floja] (http://stackoverflow.com/questions/467871/what-is-a-loosely-typed-language). Dependiendo del contexto, lo que usted reclama es una cadena, es algo más de hecho. Así que mejor use '===' si quiere comparar cadenas. Conozca a sus operadores. – hakre