RSS

  • YouTube
  • LinkedIn
  • Google

Error de comparación PHP

Compartir en tus redes sociales
  •  ;
  •  ;
  •  ;
  •  ;

Hoy, Estaba escribiendo un script en PHP para ser utilizado en la línea de comandos cuando me topé con un comportamiento inesperado (por lo menos de mi parte).
El script debe recibir tres argumentos, la última de ellas una lista que contiene uno o más códigos numéricos.
Tratando de validar este último argumento fue conseguir un resultado diferente lo imaginado.
Ver el fragmento de código que estaba usando:

Es interesante que, Cuando corrieron

el resultado fue

y revertir la condición de

muestran el mensaje esperado.
He intentado asignar a una variable independiente y continuaba no funciona.

Whyyy??

La comparación de tipo !== no se puede utilizar aquí, ya que todos los argumentos serán cadenas. Cuando yo aunque acerca de esto recibí la respuesta.

Así que hice algunas pruebas de línea de comandos y comprobar el comportamiento realmente de comparaciones PHP.

Cuando hacemos las cosas como: $cadena == $entero PHP haremos siempre un molde de cadena para el otro tipo antes de comparación, así que el código $cadena == (int) $cadena siempre devolverá true, desde $cadena se cambiará a int en ambos lados.

Para evitar este tipo de problemas, es necesario tener el mismo tipo en ambos lados de la comparación.

Nos vemos.


Compartir en tus redes sociales
  •  ;
  •  ;
  •  ;
  •  ;

Contesta

Su dirección de correo electrónico no será publicado. Campos requeridos están marcados *

Este sitio utiliza Akismet para reducir el spam. Aprender cómo se procesaron los datos de comentario.