Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/11/2010, 07:55
Avatar de Tokkara
Tokkara
 
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Switch case anidado

Te falta el break en los 'case' del primer switch, el switch padre. El break permite salir de una estructura, ¡pero solo de una!

Código PHP:
Ver original
  1. switch($uno)
  2. {
  3.    case 1:
  4.       switch($dos)
  5.       {
  6.          case 2:
  7.             //...
  8.             break;
  9.          case 3:
  10.             //...
  11.             break;
  12.          default:
  13.             //...
  14.             break;
  15.       }
  16.       break; //Te falta este break para salir del switch padre y evitar que entre en 'case 2:'
  17.    case 2:
  18.       switch($tres)
  19.       {
  20.          case 3:
  21.             //...
  22.             break;
  23.          case 4:
  24.             //...
  25.             break;
  26.          default:
  27.             //...
  28.             break;
  29.       }
  30.       break;
  31. }

Otra forma es usando un número después del break. Este número indica el número de estructuras de las que queremos salir.
Código PHP:
Ver original
  1. switch($uno)
  2. {
  3.    case 1:
  4.       switch($dos)
  5.       {
  6.          case 2:
  7.             //...
  8.             break 2;
  9.          case 3:
  10.             //...
  11.             break 2;
  12.          default:
  13.             //...
  14.             break 2;
  15.       }
  16.    case 2:
  17.       switch($tres)
  18.       {
  19.          case 3:
  20.             //...
  21.             break 2;
  22.          case 4:
  23.             //...
  24.             break 2;
  25.          default:
  26.             //...
  27.             break 2;
  28.       }
  29. }
__________________
Revolucionario controlador de plantillas para php
www.simphple.com