Foros del Web » Programando para Internet » PHP »

If ElseIf vs. Switch Case

Estas en el tema de If ElseIf vs. Switch Case en el foro de PHP en Foros del Web. Amigos: me ha pasaso algo "raro" y es que si uso Switch Case el flujo del programa se corta alli........ y no avance fuera del ...
  #1 (permalink)  
Antiguo 26/11/2007, 13:52
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Pregunta If ElseIf vs. Switch Case

Amigos: me ha pasaso algo "raro" y es que si uso Switch Case el flujo del programa se corta alli........ y no avance fuera del Swith Case completo pero eso no sucede (que es lo que busco) si re-escribo las condiciones para If ElseIf:

<?php

$actual=$_SERVER['PHP_SELF'];

echo "<html>\n<head>\n";

/*
switch($actual){
case "/intento.php":
echo "<title>Titulo de intento</title>\n";
exit;
case "/intento2.php":
echo "<title>Titulo de intento2222222222</title>\n";
exit;
case "/intento3.php":
echo "<title>Titulo de PORTADA</title>\n";
exit;
Default:
echo "<title>Pagina no encontrada</title>\n";
}
*/

// Si usara lo de arriba ACA se cortaria el flujo del programa. Ideas ?

If ($actual=="/intento.php"){
echo "<title>Titulo de intento</title>\n";
} elseif ($actual=="/intento2.php"){
echo "<title>Titulo de intento2222222222</title>\n";
} elseif ($actual=="/intento3.php"){
echo "<title>Titulo de PORTADA</title>\n";
}


echo "</head>\n<body>\n";

switch($actual){
case "/intento.php":
include $_SERVER["DOCUMENT_ROOT"]."/nuevos-blogs.php";
exit;
case "/intento2.php":
include $_SERVER["DOCUMENT_ROOT"]."/info.php";
exit;
case "/intento3.php":
include $_SERVER["DOCUMENT_ROOT"]."/portada.php";
exit;
Default:
}

echo "</body>\n</html>\n";
?>


Gracias desde ya!!!!!
__________________
Salu2!
  #2 (permalink)  
Antiguo 26/11/2007, 15:06
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Re: If ElseIf vs. Switch Case

Italico, fijate lo uqe hace exit. Creo que lo que estabas buscando es break
  #3 (permalink)  
Antiguo 26/11/2007, 15:13
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
De acuerdo Re: If ElseIf vs. Switch Case

Cita:
Italico, fijate lo uqe hace exit. Creo que lo que estabas buscando es break
Seppo: de nuevo mil gracias!!!! ahora si

Ahora una reflexion: el codigo con ElseIf al no tener esos breaks ... no es mas compacto ?

Uds. que prefieren Switch-case o If-ElseIf ?
__________________
Salu2!
  #4 (permalink)  
Antiguo 26/11/2007, 15:15
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: If ElseIf vs. Switch Case

Cita:
break accepts an optional numeric argument which tells it how many nested enclosing structures are to be broken out of
WoW
__________________
Salu2!
  #5 (permalink)  
Antiguo 26/11/2007, 15:47
Avatar de andruqui  
Fecha de Ingreso: agosto-2007
Mensajes: 269
Antigüedad: 16 años, 8 meses
Puntos: 2
Re: If ElseIf vs. Switch Case

Yo me inclinaria por el switch, hace una comparacion sola en cambio en cada else if compara.
Se deberia ver como lo traduce a bajo nivel.

Saludos
Andres
  #6 (permalink)  
Antiguo 26/11/2007, 17:20
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: If ElseIf vs. Switch Case

Cita:
Yo me inclinaria por el switch, hace una comparacion sola en cambio en cada else if compara.
Se deberia ver como lo traduce a bajo nivel.
Ambos hacen varias comparaciones....... pero seguro que el rendimiento es para tener en cuenta........ aunque no me gusta escribir de mas
__________________
Salu2!
  #7 (permalink)  
Antiguo 26/11/2007, 17:25
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: If ElseIf vs. Switch Case

Pues en cuanto rendimiento la diferencia debe ser realmente mínima. Ahora bien yo me inclino mas por el switch, simplemente porque es más claro el uso de switch que del if y mas si alguien la va dar mantemiento a tú código. Al menos a mi me funcionamdo mejor el switch

Saludillos
  #8 (permalink)  
Antiguo 26/11/2007, 19:07
okram
Invitado
 
Mensajes: n/a
Puntos:
Voy Por El Mensaje Número 1000

Coincido con mauled, el switch es mucho más legible. Sin embargo, uso el if... elseif... si son pocas las comparaciones a hacer (hablamos de 2 ó 3). La diferencia en tiempos de ejecucion no es significativa, ya que ambas han de realizar comparaciones del valor de la variable.

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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 19:55.