Foros del Web » Programando para Internet » PHP »

switch dentro de función propia

Estas en el tema de switch dentro de función propia en el foro de PHP en Foros del Web. Hola, quería saber cómo realizar un switch(), que reciba un valor mediante un $_GET["variabledeotrapagina"] <li><a href="noticias.php?noticia=1">Noticia 1</a> </li> hasta.... <li><a href="noticias.php?noticia=10">Noticia 10</a> </li> o se ...
  #1 (permalink)  
Antiguo 26/11/2008, 19:22
Avatar de anticic  
Fecha de Ingreso: noviembre-2008
Mensajes: 21
Antigüedad: 15 años, 5 meses
Puntos: 0
switch dentro de función propia

Hola,

quería saber cómo realizar un switch(), que reciba un valor mediante un $_GET["variabledeotrapagina"]

<li><a href="noticias.php?noticia=1">Noticia 1</a> </li>
hasta....
<li><a href="noticias.php?noticia=10">Noticia 10</a> </li>

o se de n=1 a n=10

Hasta ahora hice lo siguiente (sin función y funciona)
$noticia=$_GET["noticia"];
switch($noticia)
{
case "1";
include("noticias/noticia1.htm");
break;

case "2";
include("noticias/noticia2.htm");
break;

case "3";
include("noticias/noticia3.htm");
break;

case "4";
include("noticias/noticia4.htm");
break;

case "5";
include("noticias/noticia5.htm");
break;

case "6";
include("noticias/noticia6.htm");
break;

case "7";
include("noticias/noticia7.htm");
break;

case "8";
include("noticias/noticia8.htm");
break;

case "9";
include("noticias/noticia9.htm");
break;

case "10";
include("noticias/noticia10.htm");
break;

default:
echo('error');
Gracias por la ayuda
  #2 (permalink)  
Antiguo 26/11/2008, 19:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: switch dentro de función propia

pues eso... solo mete tu código en una función nueva, y bingo!!

lo digo, porque $_GET es una super array global.. por lo cual no tendrás problemas

como recomendación, no uses echo... usa return así es lo ideal.... inclusive, usa return con el include ...


pero creo que estas siendo redundante... mira

Código PHP:
function foo ()
{
  
$n=$_GET['bar'];
  switch (
$n)
  {
    case 
1: case 2: case 3:
    case 
4: case 5: case 6:
    case 
7: case 8: case 9:
    case 
10// etc...
      
return include "candy{$n}.htm";
    break;
    default:
      return 
false;
    break;
  }

este código suple en su mayoría el tuyo, con mas dinámica...

suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 27/11/2008, 06:35
Avatar de anticic  
Fecha de Ingreso: noviembre-2008
Mensajes: 21
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: switch dentro de función propia

Gracias pateketrueke,
Una pregunta: ¿no sería mejor pasarle como parámetro a foo el $n es decir que esté fuera de la función?
La idea es saber si puedo crear dentro del switch un bucle con n cantidad de cases(cosa quizás poco probable) concatenando tal como lo pones.
Aguardo ansiosa la respuesta y gracias nuevamente
  #4 (permalink)  
Antiguo 27/11/2008, 09:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: switch dentro de función propia

Cita:
¿no sería mejor pasarle como parámetro a foo el $n es decir que esté fuera de la función?
pues, no se... eso lo eliges tu, no crees ???

demás, no se pueden hacer bucles con switch .... pero para que entiendas mejor

si tus archivos están numerados, o bien... tienen algún identificador que puede ser pasado por parámetro ya no es necesario el switch

Código PHP:
function foo($n)
{
  
$s "candy{$n}.do";
  if (
is_file($s))
  {
    return include 
$s;
  }

demás, te sugiero leas el manual y tomes tus decisiones al respecto... no tengo mas que agregar, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 27/11/2008, 14:54
Avatar de anticic  
Fecha de Ingreso: noviembre-2008
Mensajes: 21
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: switch dentro de función propia

Hola pateketrueke

Excelente!!! Muchísimas gracias, eso es exactamente lo que me andaba faltando
Gracias nuevamente. Soy novata en esto y este espacio es valiosísimo para mí.




Cita:
Iniciado por pateketrueke Ver Mensaje
pues, no se... eso lo eliges tu, no crees ???

demás, no se pueden hacer bucles con switch .... pero para que entiendas mejor

si tus archivos están numerados, o bien... tienen algún identificador que puede ser pasado por parámetro ya no es necesario el switch

Código PHP:
function foo($n)
{
  
$s "candy{$n}.do";
  if (
is_file($s))
  {
    return include 
$s;
  }

demás, te sugiero leas el manual y tomes tus decisiones al respecto... no tengo mas que agregar, suerte!
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 12:50.