Foros del Web » Programando para Internet » PHP »

switch dentro de otro switch

Estas en el tema de switch dentro de otro switch en el foro de PHP en Foros del Web. hola chicos! estoy mirando mucho el codigo de PHPBB y la verdad tengo dudas respecto a un par de cosillas para mi uso. entre ellas ...
  #1 (permalink)  
Antiguo 07/12/2005, 05:46
 
Fecha de Ingreso: junio-2002
Mensajes: 321
Antigüedad: 15 años, 5 meses
Puntos: 3
switch dentro de otro switch

hola chicos!

estoy mirando mucho el codigo de PHPBB y la verdad tengo dudas respecto a un par de cosillas para mi uso. entre ellas mirad:

Código PHP:
if( isset($HTTP_GET_VARS['mode']) )
{
    switch( 
$HTTP_GET_VARS['mode'] )
    {
        case 
'bbcode':
            echo 
"esto es la opcion BBCODE";
            break;
        default:
            echo 
"esto es la opcion por defecto cuando en la ruta entras con: tupagina.php?mode";
            break;
    }
}
else
{
    echo
"se que el codigo que sale aqui es el mismo que cuando entras en la pagina sin pasar por las variables";

si veis ahi os he puesto una serie de explicaciones respecto a lo que sale en cada caso.

si veis en el caso bbcode, dentro me gustaria meter otro switch con $http_get_vars[opcion2] porque mi intencion es que quede una ruta parecida a:
tupagina.php?mode=bbcode&opcion1

o algo asi parecido.

sabeis como puedo hacerlo?
un saludo!
  #2 (permalink)  
Antiguo 07/12/2005, 05:49
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 12 años, 2 meses
Puntos: 18
¿Pero has probado de poner el segundo switch donde dices? Si es así, te sale algún error? Cuál?
  #3 (permalink)  
Antiguo 07/12/2005, 06:14
 
Fecha de Ingreso: junio-2002
Mensajes: 321
Antigüedad: 15 años, 5 meses
Puntos: 3
a ver.. error no da si no directamente no va al switch que yo le he especificado.

lo he hecho asi:

Código PHP:
<?php

if( isset($HTTP_GET_VARS['mode']) )
{
    switch( 
$HTTP_GET_VARS['mode'] )
    {
        case 
'bbcode':
            switch( 
$HTTP_GET_VARS['bbcode'] )
            {
                case 
'opcion1':
                    echo 
"esto es la opcion BBCODE";
                    break;
                default:
                    echo 
"esto es la opcion por defecto cuando en la ruta entras con: tupagina.php?mode";
                    break;
            }
            break;
        default:
            echo 
"esto es la opcion por defecto cuando en la ruta entras con: tupagina.php?mode";
            break;
    }
}
else
{
    echo
"se que el codigo que sale aqui es el mismo que cuando entras en la pagina sin pasar por las variables";


?>
pero no tira en la ruta segunda porque por la de defecto si la hace :S
  #4 (permalink)  
Antiguo 07/12/2005, 06:24
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 12 años, 2 meses
Puntos: 18
Se me ocurren dos cosas.

La primera es que no compruebas (con un isset) que la variable $HTTP_GET_VARS['bbcode'] exista.

La segunda es quizás el php no permita switch's anidados. Podrías poner un if en vez del segundo switch.
  #5 (permalink)  
Antiguo 07/12/2005, 06:25
 
Fecha de Ingreso: junio-2002
Mensajes: 321
Antigüedad: 15 años, 5 meses
Puntos: 3
y como compruebo con un isset?
  #6 (permalink)  
Antiguo 07/12/2005, 06:35
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 12 años, 2 meses
Puntos: 18
Joerl, pues igual que lo has utilizado en la primera linea.

Código:
if( isset($HTTP_GET_VARS['bbcode']) )
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 20:22.