strip_tags remove inicio fin etiquetas ejemplos ejemplo php string

remove - PHP expresa dos cadenas diferentes para ser el mismo



remove html tags php (6)

Posible duplicado:
php == vs === operador
¿En qué se diferencian los operadores de comparación de igualdad (== doble igual) e identidad (=== triple igual)?

¿Por qué la siguiente afirmación es true ?

"608E-4234" == "272E-3063"

También he intentado esto con comillas simples alrededor de las cuerdas. La única forma en que puedo hacer que se evapore a false es usando el operador === lugar de ==

Supongo que PHP lo está tratando como una especie de ecuación, pero parece un poco extraña.

¿Alguien puede elaborar?


Creo que PHP lee esto como una sintaxis científica, que se traducirá como:

608 x 10^-4234 == 272 x 10^-3063

PHP interpreta esto como 0 = 0 .



Estoy tratando de responder. Si usa "===", también verifica con el tipo en lugar del valor. Si está utilizando "==", simplemente verifique que el valor sea el mismo o no.

puedes hacer referencia here y here .


PHP está comparando esas cadenas como números de coma flotante, y ambas son cero, por lo que DEBE usar el operador === ,


PHP usa IEEE 754 para flotantes, y sus números son tan pequeños que evalúan a 0.

Ver: http://en.wikipedia.org/wiki/IEEE_floating_point

Name Common name Base Digits E min E max binary32 Single precision 2 23+1 −126 +127 binary64 Double precision 2 52+1 −1022 +1023


"608E-4234" es el formato de número flotante , por lo que se convertirá en número cuando se comparen.

608E-4234 y 272E-3063 ambos float(0) porque son demasiado pequeños.

Para == en php,

Si compara un número con una cadena o la comparación implica cadenas numéricas , cada cadena se convierte en un número y la comparación se 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 ambos == y === ?

La respuesta es que el comportamiento es diferente de PHP. En javascript, si compara dos valores con el mismo tipo, == es exactamente igual que === , por lo que no se producirá el reparto para compararlo 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)

Por lo tanto, en javascript, cuando conozca el tipo de resultado, podría usar == lugar de === para guardar un carácter.

Por ejemplo, el operador typeof siempre devuelve una cadena, por lo que podría usar

typeof foo == ''string'' lugar de typeof foo === ''string'' sin daño.