Foros del Web » Programando para Internet » PHP »

Problema con IF

Estas en el tema de Problema con IF en el foro de PHP en Foros del Web. Hola, quería saber por qué al ejecutar el código de abajo me devuelve "No" (Es decir, no se cumple la condición) cuando en realidad me ...
  #1 (permalink)  
Antiguo 07/12/2007, 16:58
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 13 años
Puntos: 36
Problema con IF

Hola, quería saber por qué al ejecutar el código de abajo me devuelve "No" (Es decir, no se cumple la condición) cuando en realidad me debería devolver "Ok" (Es decir que se cumple la condición). Estube tratando pero no llego a descifrar el problema.

Código PHP:
<?

$color 
"azul";

$colores '"rojo" || "azul" || "verde"';

if(
$color == ($colores)){

echo 
"Ok";

}else{

echo 
"no";

}

?>
Gracias!
  #2 (permalink)  
Antiguo 07/12/2007, 17:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Re: Problema con IF

Porque estas comparando dos strings, le estas preguntando a PHP si "azul" es igual a "rojo" || "azul" || "verde", y no lo es.

Si lo que quieres es verificar si azul existe en la cadena, puedes usar strpos, o en dado caso pasar los colores en un array y usar in_array.

Saludos.
  #3 (permalink)  
Antiguo 07/12/2007, 17:25
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 13 años
Puntos: 36
Re: Problema con IF

Gracias GatorV, probe con array y funciona perfecto. Esta bien el código?

Código PHP:
<?

$color 
"azul";

$colores = array("rojo","azul","verde");

if(
in_array($color$colores)){

echo 
"Ok";

}else{

echo 
"no";

}

?>

Última edición por hgp147; 07/12/2007 a las 17:32
  #4 (permalink)  
Antiguo 07/12/2007, 17:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Re: Problema con IF

Es recomendable que compares el resultado de strpos si no es falso, porque por decir si encuentra el string pero en la posición 0, entrara como false.

Hazlo así:
Código PHP:
if(strpos($colores$color) !== false){ 
  #5 (permalink)  
Antiguo 07/12/2007, 17:39
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 14 años, 8 meses
Puntos: 33
De acuerdo Re: Problema con IF

Yo la haria como tu lo hiciste hgp147 y si tu código esta bien.

Saludillos.
  #6 (permalink)  
Antiguo 08/12/2007, 23:05
 
Fecha de Ingreso: junio-2002
Mensajes: 57
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Problema con IF

posiblemente para que te funcionase como querías el resultado final debería ser:

Código PHP:
if($color == ("rojo" || ("azul" || "verde"))){ 
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 19:35.