Foros del Web » Programando para Internet » PHP »

Imprimir variable local en ámbito global

Estas en el tema de Imprimir variable local en ámbito global en el foro de PHP en Foros del Web. Hola a todos, tengo un ciclo foreach que recorre un array y en cada vuelta ejecuta la función agregar($algo) que es así: Código PHP: function  ...
  #1 (permalink)  
Antiguo 05/11/2011, 15:47
 
Fecha de Ingreso: febrero-2009
Mensajes: 202
Antigüedad: 15 años, 9 meses
Puntos: 3
Imprimir variable local en ámbito global

Hola a todos,
tengo un ciclo foreach que recorre un array y en cada vuelta ejecuta la función agregar($algo) que es así:

Código PHP:
function agregar($algo){
      
$variable += $algo;

O sea $variable va adicionando contenido por cada vuelta del for.
Lo que yo necesito hacer es imprimir $variable en el ámbito global. Estuve leyendo que podía solucionarse definiendo $variable en el ámbito global y después desde la función la llamo como "global $variable". Pero de esa manera se estarían perdiendo todos los valores que estuve adicionando a $variable en las vueltas anteriores ya que en cada vuelta estaría recuperando siempre el valor del la variable global...

No se me ocurre nada, ¿tienen alguna idea?

Edito: tampoco me sirve un return, no? porque yo quiero imprimir $variable en su última vuelta, no en cada una de ellas...


Gracias!
  #2 (permalink)  
Antiguo 05/11/2011, 16:08
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 14 años, 1 mes
Puntos: 511
Respuesta: Imprimir variable local en ámbito global

Hola que tal.

Has pensado en utilizar sesiones
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 05/11/2011, 16:34
 
Fecha de Ingreso: febrero-2009
Mensajes: 202
Antigüedad: 15 años, 9 meses
Puntos: 3
Respuesta: Imprimir variable local en ámbito global

Mmmmm, creo que no vale la pena en mi caso. Usé funciones para organizar mi script mejor porque es bastante extenso y complejo, pero podría poner las instrucciones directamente en el ciclo y trabajarlo todo desde el ámbito global...
Si hay una solución más práctica mucho mejor, pero sino no hay drama...
  #4 (permalink)  
Antiguo 06/11/2011, 01:29
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Imprimir variable local en ámbito global

Cita:
Iniciado por Ozone
Pero de esa manera se estarían perdiendo todos los valores que estuve adicionando a $variable en las vueltas anteriores ya que en cada vuelta estaría recuperando siempre el valor del la variable global...
No, estas equivocado, si tienes $variable en ambito global y en local la tomas con global $variable; no "importas su valor", sino que directamente estaras manipulando esa variable en global y, cuando vuelvas a ingresar a la funcion, tendra exactamente el mismo valor que dejo en la ultima ejecucion, a menos claro, que la hayas modificado en otro lado.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 06/11/2011, 11:25
 
Fecha de Ingreso: febrero-2009
Mensajes: 202
Antigüedad: 15 años, 9 meses
Puntos: 3
Respuesta: Imprimir variable local en ámbito global

Cita:
Iniciado por Triby Ver Mensaje
No, estas equivocado, si tienes $variable en ambito global y en local la tomas con global $variable; no "importas su valor", sino que directamente estaras manipulando esa variable en global y, cuando vuelvas a ingresar a la funcion, tendra exactamente el mismo valor que dejo en la ultima ejecucion, a menos claro, que la hayas modificado en otro lado.
Ahhhh tenés razón maestro. Me había quedado en javascript y estaba usando + en vez de . , entonces por eso no registraba el +=.

Gracias a todos por la ayuda!

Etiquetas: global, local, variables
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:06.