Foros del Web » Programando para Internet » PHP »

Funciones con variables

Estas en el tema de Funciones con variables en el foro de PHP en Foros del Web. Hola. registerglobals está a On. En el archivo a tengo un form y en el B un echo $nombre, el resultaod lo saca bien, imprime ...
  #1 (permalink)  
Antiguo 21/10/2004, 12:36
 
Fecha de Ingreso: abril-2004
Ubicación: Madrid
Mensajes: 159
Antigüedad: 13 años, 8 meses
Puntos: 0
Funciones con variables

Hola.
registerglobals está a On.

En el archivo a tengo un form y en el B un echo $nombre, el resultaod lo saca bien, imprime el nombre que puse en el form.
Pero . . .
ahora en el archivo B hago

function muestra(){echo $nombre;}
muestra();

El resultado es que no veo el nombre, al llamar a la funcion parece que esta no es capaz de pillar el contenido de la variable $nombre, alguien me puede explicar esto ? (no quiero hacerlo con $_POST) , si llamo a una funcion , aunke registerglobals esté a On, esta no puede ver las variables del form ???

gracias.
  #2 (permalink)  
Antiguo 21/10/2004, 12:42
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 14 años, 4 meses
Puntos: 0
Creo que en cuanto entras en una función, las variables dejan de ser globales a no ser que lo especifiques en la primera línea de la función con la sentencia:

Código PHP:
 global $nombre
Otra alternativa sería llamar a la función pasandole el $nombre por referencia:

Código PHP:
 muestra($nombre); 
Así el valor de $nombre global pasaría al $nombre local.

Suerte
  #3 (permalink)  
Antiguo 21/10/2004, 12:44
Avatar de shadow_woman  
Fecha de Ingreso: junio-2004
Ubicación: La Isla De Los Muertos
Mensajes: 60
Antigüedad: 13 años, 6 meses
Puntos: 0
el parametro se lo tienes que pasar a la funcion:
cuando declaras la funcion :
function muestra($nombre){
}
.....

y en el codigo:

muestra($nombre);

Creo que con esto deberia funcionar
  #4 (permalink)  
Antiguo 21/10/2004, 13:43
 
Fecha de Ingreso: abril-2004
Ubicación: Madrid
Mensajes: 159
Antigüedad: 13 años, 8 meses
Puntos: 0
joe . . . son unos 50 parametros . . . voy a probar el global $nombre
gracias a los dos

un saludo.
si alguien sabe una manera mas comoda(son 50 variables) que no me paetece ponerme a declarar como globales ni pasarlas por parametro (no quiero usar $_post)

sio a la espera, mientras declaro las 50 variables globales en la funcion, gracias.
  #5 (permalink)  
Antiguo 21/10/2004, 14:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. deberías concretar mejor de donde salen esas "50" variables .. porqué por ejemplo si esas variabels llegan de un formulario (o URL) .. los arrays superglobales: $_POST, $_GET por ejemplo YA són de por sí globales . .así que el ambito de estas es en todas partes de tus scripts incluido en funciones.

Es decir .. En lugar de hacer cosas como:

$nombre=$_POST['nombre'];

para luego tener que hacer:

function nose($nombre){
echo $nombre;
}

puedes hacer directamente:

function nose(){
echo $_POST['nombre'];
}

Y .. dependiendo de lo que hagas con esas variables .. también recuerda que ese tal $_POST ..o similar es un array que siempre puedes recorrer con bucles tipo foreach()

En otros casos .. datos simples que vas tomando de aquí y de allá puedes ir generando un array en lugar de variables sueltas .. facilta mucho "pasar" esas variables a una función (ya sea como por parámetro o global) y otra serie de cosas.


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.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:09.