Ojo con las compararciones en PHP

En PHP hay que tener cuidado al comparar dos valores cuando uno de ellos es una cadena. Para ver el problema he creado la función «comparar» donde vemos si un valor es igual a cero o no: Los resultados serán: 123 se convierte en 123, por lo tanto: (123 == 0) -> false 123 se … Read more Ojo con las compararciones en PHP

Un ejemplo para entender el operador !== (no idéntico) en PHP

El operador ‘!=’ confunde los ceros con false. En casos como este debemos usar ‘!==’:

function numero($valor)
{
    if (is_numeric($valor)) {
        return $valor;
    }
    return false;
}
 
$elNumero = "0";
 
var_dump(numero($elNumero));
 
if (numero($elNumero)!==false) {
    echo "Usando === nos dice que es un número.\n";
}
 
if (numero($elNumero)!=false) {
    echo "Usando == nos dice que es un número.\n";
}
  • Con $elNumero = 1; funciona correctamente.
  • Con $elNumero = 0; el operador ‘!=» da un resultado erróneo.

La razón es que ‘!=’ confunde el número 0 con false.