Foros del Web » Programando para Internet » PHP »

Switch dentro de una función, retornar resultado

Estas en el tema de Switch dentro de una función, retornar resultado en el foro de PHP en Foros del Web. Código PHP: function  getVideo ( $link , $type ){ $yw  =  220 ; $yh  =  190 ;     switch ( $type ){     case  1 :      $output ...
  #1 (permalink)  
Antiguo 21/11/2008, 12:28
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 4 meses
Puntos: 56
Switch dentro de una función, retornar resultado

Código PHP:
function getVideo($link,$type){
$yw 220;
$yh 190;
    switch (
$type){
    case 
1:
    
$output'<object width="'.$yw.'" height="'.$yh.'">
    <param name="movie" value="'
.$link.'"></param>
    <param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always">
    </param><embed src="'
.$link.'" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="'.$yw.'" height="'.$yh.'"></embed></object>';
      break;
    }
 
 return 
$output;

Bien el $output lo toma como undefenido y quiero tomarlo como global, que haría en este caso? son muchos tipos, la forma que hago ahora es
Código PHP:
case 1:
$output'<object width="'.$yw.'" height="'.$yh.'">
<param name="movie" value="'
.$link.'"></param>
<param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always">
</param><embed src="'
.$link.'" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="'.$yw.'" height="'.$yh.'"></embed></object>';
 return 
$output;
break;

case 
2:
$output "Etc";
return 
$output;
break; 
y así... pero no quiero repetir el resultado varias veces, si no al final.

Saludos y gracias.
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #2 (permalink)  
Antiguo 21/11/2008, 14:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Switch dentro de una función, retornar resultado

No entiendo cual es tu problema, la unica forma de que regrese como undefined es si el $type no entra dentro del switch.

Saludos.
  #3 (permalink)  
Antiguo 21/11/2008, 18:31
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Switch dentro de una función, retornar resultado

Como dice GatorV, el problema puede que no este en el codigo.. sino que quizas no estas enviando el valor a $type que sea 1.. podrias comprobarlo poniendo default..

Código PHP:
function getVideo($link,$type){
    
$yw 220;
    
$yh 190;
    switch (
$type){
        case 
1:
            
$output'<object width="'.$yw.'" height="'.$yh.'">
            <param name="movie" value="'
.$link.'"></param>
            <param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always">
            </param><embed src="'
.$link.'" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="'.$yw.'" height="'.$yh.'"></embed></object>';
            break;
        default:  
// agrega esta linea y las 2 siguientes..
            
$output 'nada';
            break;
    }
 
    return 
$output;

Si responde con 'nada' es porque no has enviado un valor que sea correcto y que este comprendido dentro del switch
  #4 (permalink)  
Antiguo 21/11/2008, 18:58
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 4 meses
Puntos: 56
Respuesta: Switch dentro de una función, retornar resultado

Mas simple:

Código PHP:
function getVideo($type){

switch(
$type){
case 
0:
$variable "Es el número 0";
break;
case 
1:
$variable "Es el número 1";
break;
}
return 
$variable

}

echo 
getVideo(0); // Imprime: Es el número 
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #5 (permalink)  
Antiguo 21/11/2008, 23:31
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Switch dentro de una función, retornar resultado

De todas formas siempre que utilices switch.. debes de utilizar default.. para proteger tu aplicacion de valores no contemplados dentro de los cases..

Y todos los ejemplos son validos.. siempre y cuando utilices default.. repitoo..!!
  #6 (permalink)  
Antiguo 22/11/2008, 08:16
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 4 meses
Puntos: 56
Respuesta: Switch dentro de una función, retornar resultado

erlingfiallo, se lo que hace el default, pero en estos casos no quiero utilizarlo, por lo visto no me han entendido aún, entonces me quedará repetir siempre el return, Gracias a los 2 igual

Código PHP:
function getVideo($type){

switch(
$type){
case 
0:
$variable "Es el número 0";
return 
$variable
break;
case 
1:
$variable "Es el número 1";
return 
$variable
break;
}

}

echo 
getVideo(0); // Imprime: Es el número 0 
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
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 03:59.