Foros del Web » Programando para Internet » PHP »

Problemas con la sentencia 'switch'

Estas en el tema de Problemas con la sentencia 'switch' en el foro de PHP en Foros del Web. a ver si me pueden decir que me esta fallando: switch ($tipo) { case "Casa" : echo "1"; break; case "Departamento" : echo "2"; break; ...
  #1 (permalink)  
Antiguo 01/06/2004, 23:14
 
Fecha de Ingreso: agosto-2003
Mensajes: 57
Antigüedad: 20 años, 8 meses
Puntos: 0
Problemas con la sentencia 'switch'

a ver si me pueden decir que me esta fallando:

switch ($tipo)
{
case "Casa" : echo "1";
break;
case "Departamento" : echo "2";
break;
case "Campo" or "Fraccion" or "Lote" : echo "3";
break;
default : echo "4";
break;
}

el problema es que si pongo algo diferente a los primeros tres casos (ej: "Local"), entra al caso 3. O sea nunca entra al default.
Probé poniendo | en lugar de or y con "Local" por ej, entra al default, pero con campo tambien, en vez de entrar al caso 3.
Espero que me puedan decir que es, yo estoy sospechando que no se pueden usar or's en el case, pero si tengo que poner muchos if es un quilombo. Que hago?

Muchas gracias.

Germán.
  #2 (permalink)  
Antiguo 02/06/2004, 03:58
Avatar de peleo  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 37
Antigüedad: 20 años, 5 meses
Puntos: 0
Me parece que lo mejor seríano poner los "or".

Si pones:

Código:
case "Campo": echo "3";
break;

case "Fraccion": echo "3";
break;

case "Lote": echo "3";
break;

default : echo "4";
break;
Así no creo que falle.

Un saludo
  #3 (permalink)  
Antiguo 02/06/2004, 06:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm creo que más claro te quedaría el condicional si usas: IF() else .. elseif ...

De todas formas .. para el Case "condicional" .. intenta usar () parentesis:

Código PHP:
case ("blabla" || "bla"):
//hacer blabla
break; 
La diferencia entre OR y || se refiere al orden de ejecución de la sentencia condicional:
http://www.php.net/manual/en/languag...ors.precedence


Un saludo,
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 11:04.