Foros del Web » Programando para Internet » PHP »

Problema con comparación

Estas en el tema de Problema con comparación en el foro de PHP en Foros del Web. Amigos me ayudarian con esto que no logro ver donde esta el problema. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original if ( $variable != 0 ) ...
  #1 (permalink)  
Antiguo 05/09/2011, 16:47
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 5 meses
Puntos: 1
Problema con comparación

Amigos me ayudarian con esto que no logro ver donde esta el problema.

Código PHP:
Ver original
  1. if($variable != 0)
  2.     {
  3.                          //  ....
  4.     }else{
  5.         var_dump($variable);
  6.     }


y la salida es

Código PHP:
Ver original
  1. string(6) "prueba"


Como puede ser?
  #2 (permalink)  
Antiguo 05/09/2011, 16:49
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Problema con comparación

Estas comprobando si $variable es diferente de cero ... sino que haga el var_dump. Es posible porque en algún lugar de tu código le asignas el valor de "prueba" a $variable
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 05/09/2011, 16:51
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 5 meses
Puntos: 1
Respuesta: Problema con comparación

Hola gracias por la pronta respuesta, $variable es un cambo de una tabla en una base de datos que contiene el valor "prueba", este valor no es acaso difierente de cero? porque se ejecuta el bloque else?
  #4 (permalink)  
Antiguo 05/09/2011, 16:54
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Problema con comparación

Necesitas leer sobre condicionales

Código PHP:
Ver original
  1. if($variable != 0)
  2.     {
  3.      var_dump($variable);
  4.     }

Si es diferente de cero que no haga nada sino que haga el var_dump

para que me entiendas te invito a hacer esta prueba:

Código PHP:
Ver original
  1. $variable2 = (int) 'prueba';
  2. var_dump($variable2);

El string convertido a int da cero por eso se ejecuta el else.

http://php.net/manual/es/control-structures.else.php

Saludos
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 05/09/2011 a las 17:01
  #5 (permalink)  
Antiguo 05/09/2011, 17:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con comparación

Resulta que si una cadena la comparas con otro tipo de dato, se realiza alguna conversion temporal para poder efectuar la comparacion, donde, al convertir una cadena, generalmente tomara el valor de cero.

Te propongo probar las siguientes condicionales y dime si alguna funciona como la necesitas
Código PHP:
Ver original
  1. if('prueba' != 0) {
  2.     echo 'Prueba no es igual a cero';
  3. }
  4. if('prueba' != '0') {
  5.     echo 'Prueba no es igual a cero';
  6. }
  7. // Finalmente, prueba comparando contenido y tipo de dato
  8. if('prueba' !== 0) {
  9.     echo 'Prueba no es igual a cero';
  10. }
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 05/09/2011, 17:18
 
Fecha de Ingreso: octubre-2003
Mensajes: 540
Antigüedad: 20 años, 5 meses
Puntos: 1
Respuesta: Problema con comparación

ok gracias lo voy a verificar
  #7 (permalink)  
Antiguo 05/09/2011, 17:30
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Problema con comparación

Prueba este también:

Código PHP:
Ver original
  1. <?php
  2. $variable = 'prueba';
  3.  
  4. if ($variable != (string) 0) {
  5.     echo 'IF';
  6. } else {
  7.     echo 'ELSE';
  8. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 05/09/2011, 18:53
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con comparación

andresdzphp, el uso de 3 signos !== y === es para comparar no solo contenido, sino tambien tipo, por lo que no seria necesario hacer cast, como el que sugieres y es mas adecuado, principalmente porque en PHP puedes cambiar el tipo de una variable en cualquier momento.

La idea de sugerir esas pruebas era para que Finseneu vea las diferencias entre una y otra.
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 05/09/2011, 19:06
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Problema con comparación

Sé para que son esos operadores de comparación, la idea era que viera con ejemplos porque le daba ese resultado. Creo que teniamos la misma idea, pero obvio que es mejor usar !== ó ===.

Totalmente de acuerdo. Saludos
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:18.