Foros del Web » Programando para Internet » PHP »

Uso de funciones y sus variables

Estas en el tema de Uso de funciones y sus variables en el foro de PHP en Foros del Web. Tengo problemas con el uso de las funciones y variables y nose que hago mal, mirad: Código PHP: //Más arriba se declara la variable tipo function  uncaso (){ switch( $GLOBALS [ ...
  #1 (permalink)  
Antiguo 02/09/2003, 03:23
Avatar de Ánima  
Fecha de Ingreso: julio-2002
Ubicación: Catalunya, Barcelona.
Mensajes: 538
Antigüedad: 22 años, 4 meses
Puntos: 1
Pregunta Uso de funciones y sus variables

Tengo problemas con el uso de las funciones y variables y nose que hago mal, mirad:
Código PHP:
//Más arriba se declara la variable tipo
function uncaso(){
switch(
$GLOBALS["tipo[1]"]){
case 
"a":
     
$GLOBALS["option"]="ORDER BY id DESC ";
     break;
case 
"b":
     
$GLOBALS["option"]="ORDER BY id ASC ";
     break;
     }}
//ahora utilizo la funcion pero...
uncaso();
print(
$GLOBALS["option"]);
//Lo he probado aquí con globals y sin y no funcionan de las dos formas 
En cambio si quito la función si que me funciona, por eso creo que será problema de coordinacion de variables entre la funcion y el exterior pero nose que pasa

Última edición por Ánima; 02/09/2003 a las 03:26
  #2 (permalink)  
Antiguo 02/09/2003, 03:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

El problema es :
Código PHP:
switch($GLOBALS["tipo[1]"]){ 
Con esto intentas acceder a una variable que se llama literalmente 'tipo[1]', no al elemento 2 del array llamado 'tipo'. Es lo mismo que pasa con $_POST y $_GET cuando mandas array de campos del formulario. La solucion es:
Código PHP:
switch($GLOBALS["tipo"][1]){ 
Con $GLOBALS['tipo'] obtienes el array y luego accedes al segundo elemento.

Aunque yo prefiero usar parametros para las funciones y devolver valores con return:
Código PHP:

function uncaso($caso){
switch(
$caso){
case 
"a":
     
$option="ORDER BY id DESC ";
     break;
case 
"b":
     
$option="ORDER BY id ASC ";
     break;
     }
return 
$option;
}
//ahora utilizo la funcion pero...
$option=uncaso($tipo[1]);
print(
$GLOBALS["option"]); 
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 22:35.