Ojo con las compararciones

En PHP hay que tener cuidado al comparar dos valores cuando uno de ellos es una cadena:

function comparar($valor) {
	echo "$valor == 0 -> " . ( $valor == 0 ? 'true' : 'false' ) . PHP_EOL;
}
comparar(123);
comparar('123');
comparar('123Z');
comparar('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.


Tags: PHP


Y ahora descubre uno de los mejores libros de programación orientada a objetos en PHP.

Apúntate para conseguir capítulos de muestra, recibir el boletín y más información sobre los libros.