PHPIntermedio23 oct 2025
El Misterio de los Ceros Científicos 🕵️♂️
snippet.php
<?php
$a = "0e123";
$b = "0e456";
echo ($a == $b) ? "¡Son iguales! 🤯" : "Son diferentes. 🤔";¿Qué crees que imprime?
✅ Salida Esperada
Son diferentes. 🤔⚠️ Salida Real
¡Son iguales! 🤯¿Por qué pasa esto?
¡Aquí tenemos un fenómeno digno de una película de ciencia ficción! 👽 En PHP, cuando comparas dos **cadenas de texto** con el operador de igualdad 'suelta' (`==`), PHP se lanza a una aventura de **coerción de tipos**. Si ambas cadenas *parecen* números (¡incluso en notación científica!), PHP las convierte a un tipo numérico antes de compararlas.
- La cadena `"0e123"` se interpreta como `0 * 10^123`, que matemáticamente es un rotundo **cero (0)**.
- De la misma forma, `"0e456"` se convierte en `0 * 10^456`, otro majestuoso **cero (0)**.
Así que, lo que PHP realmente compara es `0 == 0`, y el resultado... ¡es `true`! 🤯 Es como si PHP dijera: "Amigos, no son las mismas palabras, pero su valor numérico es idéntico, ¡así que son iguales para mí!". ¡Usa `===` para evitar estos viajes dimensionales!
Conceptos relacionados
type-coercionstring-comparisonnumeric-strings