Ojo con las comparaciones en PHP

Seguro que esto ya lo sabes porque es de 1º de PHP pero nunca está de más recordarlo. En PHP hay que tener cuidado al comparar dos valores cuando uno de ellos es una cadena:

function esCero($valor) {
    echo "$valor == 0 -> " . ( $valor == 0 ? 'true' : 'false' ) . PHP_EOL;
}

esCero(123);
esCero('123');
esCero('123Z');
esCero('Z123');            

Los resultados serán:

123 == 0 -> false
123 == 0 -> false
123Z == 0 -> false
Z123 == 0 -> true

Los tres primeros devuelven false porque el valor se puede convertir en un número distinto de cero. En el último caso es una cadena no convertible en número, por lo tanto se convierte en un cero.

Deja un comentario