Foros del Web » Programando para Internet » PHP »

Condicional que no se cumple?

Estas en el tema de Condicional que no se cumple? en el foro de PHP en Foros del Web. Buenas, me pasa una cosa muy curiosa. Tengo el siguiente código en el que el valor del array vale "null" y aun asi, muestra el ...
  #1 (permalink)  
Antiguo 07/01/2010, 04:54
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años
Puntos: 11
Condicional que no se cumple?

Buenas, me pasa una cosa muy curiosa. Tengo el siguiente código en el que el valor del array vale "null" y aun asi, muestra el contenido cuando no deberia.

if($temp2[0]!="null") { echo $temp2[0]; }

Lo curioso, es que en las demas lineas, con la misma operación, pero diferentes puntos del array, y con el mismo valor, no muestra el resultado (como debe ser), pero en este caso si...

Alguien me puede explicar porque? porque el codigo ponga != o ponga == me muestra siempre el contenido del array...
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #2 (permalink)  
Antiguo 07/01/2010, 04:59
Avatar de CdG
CdG
 
Fecha de Ingreso: marzo-2008
Mensajes: 114
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Condicional que no se cumple?

deben ser las comillas del "null". Prueba sin comillas->NULL
__________________
no quiero ser un árbol y caminar
Jacinto Piedra
  #3 (permalink)  
Antiguo 07/01/2010, 05:07
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años
Puntos: 11
Respuesta: Condicional que no se cumple?

no no, es que el contenido del array tiene que ser null, tal cual, como si pusieras pepe... solo que en vez de poner pepe, yo le puse el valor null ^^
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #4 (permalink)  
Antiguo 07/01/2010, 07:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Condicional que no se cumple?

mdk, por favor... prueba antes de utilizar cada variable analizarla con var_dump(), así verás con tus propios ojos de que tipo de dato y valor se trata...

una ves mas, no dejes tus problemas en manos de los poderes de adivinación (que no hay en el foro), deberías acostumbrarte a hacer este tipo de análisis por tu cuenta... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 07/01/2010, 07:31
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Condicional que no se cumple?

Bueno, no se va a saber que valor tiene porque no vemos el array. Te sugiero que a la variable $temp2 le hagas un var_dump a ver que te trae.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 07/01/2010, 19:39
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años
Puntos: 11
Respuesta: Condicional que no se cumple?

El contenido del array se cual es ya que lo he creado yo. Y como ya he dicho, el contenido de ese campo del array, contiene el valor "null", no dejo mis problemas en " poderes de adivinación" paketrueke, ya que tengo muy claro el contenido del array, ya que ya lo comprove. Solo que no realiza la condicional correctamente, y pregunto, por si se me a pasado algo. Aunque seria raro, porque una condicional tan simple como un if...


es que es igual que si pongo:

$a = "fuera";
if ($a != "fuera") { echo "Ha entrado!"; }

Según el código, nunca deberia de mostrar "Ha entrado", encambio lo muestra.
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)

Última edición por mdk; 07/01/2010 a las 19:52
  #7 (permalink)  
Antiguo 07/01/2010, 20:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Condicional que no se cumple?

exacto!!

ahora... por usar var_dump() sabes que lo que te arroja es un NULL, pero tu estas haciendo "null" osea... estas comparando un null con un string

cosa jamás va van a ser iguales... ahora sabes claramente tu error, necesitas comparar con NULL, que es un tipo de dato y no un string

Cita:
Iniciado por mdk Ver Mensaje
[...] es que es igual que si pongo:

$a = "fuera";
if ($a != "fuera") { echo "Ha entrado!"; }

Según el código, nunca deberia de mostrar "Ha entrado", encambio lo muestra.
y eso, lo comprobaste... o lo imaginaste??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 07/01/2010, 20:19
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años
Puntos: 11
Respuesta: Condicional que no se cumple?

a ver... es que no comprendeis bien lo que he puesto, cuando digo que pongo:

if($temp2[0]!="null") { echo $temp2[0]; }

es porque null es "null" una palabra, no NULL valor nulo. Como si remplazo "null" y pongo "falso", me sigue dando el mismo problema :S

Ya que en el array, he asignado a $temp2[0] el valor "null" como podria averle asignado "falso". Comprendes ahora?

Aunque estoy haciendo unas pruebas con otra cosa, a ver si funcionan...
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #9 (permalink)  
Antiguo 07/01/2010, 21:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Condicional que no se cumple?

te pido un gran favor... ha lo siguiente:

Código PHP:
var_dump($temp2);
if(
$temp2[0]!="null") { echo $temp2[0]; } 
y coloca el resultado del var_dump() en este post, vale??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 07/01/2010, 23:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Condicional que no se cumple?

Haz el var_dump y postea que te trae. Puede ser que estes llamando la llave equivocada. Por eso, la sugerencia del var_dump para salir de todas las dudas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 09/01/2010, 16:25
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años
Puntos: 11
Respuesta: Condicional que no se cumple?

Cita:
Iniciado por pateketrueke Ver Mensaje
te pido un gran favor... Ha lo siguiente:

Código PHP:
var_dump($temp2);
if(
$temp2[0]!="null") { echo $temp2[0]; } 
y coloca el resultado del var_dump() en este post, vale??
4
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #12 (permalink)  
Antiguo 09/01/2010, 19:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Condicional que no se cumple?

Cita:
Iniciado por mdk Ver Mensaje
4
de verdad??

entonces $temp2 no siquiera es un array()!!

¿como piensas que tu condicional acierte si el planteamiento está errado??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 11/01/2010, 17:31
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 22 años
Puntos: 11
Respuesta: Condicional que no se cumple?

a ver... no pongo:

Código PHP:
var_dump($temp2); 
if(
$temp2[0]!="null") { echo $temp2[0]; } 
Como tu has dicho. Pongo:

Código PHP:
var_dump($temp2[0]); 
if(
$temp2[0]!="null") { echo $temp2[0]; } 
Que es muy diferente. Lo que pasa es que di por hecho que querias decir que pusiera el var_dump en el campo del array, y no como me dijiste tu que lo pusiera, ya que no me daria nada. Y como ya te digo, da 4 señalando $temp2[0], dejando el valor como "null", si pongo "falso" cambia el resultado a 5.
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)

Etiquetas: condicional, cumple
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 05:13.