Foros del Web » Programando para Internet » PHP »

unset() todas las variables

Estas en el tema de unset() todas las variables en el foro de PHP en Foros del Web. Hola, es posible eliminar todas las variables existentes? por ejemplo, tengo: Código PHP: $hola = 'hola' ; $nombre = 'sss' ; $idioma [ 'si' ]= ...
  #1 (permalink)  
Antiguo 01/05/2009, 15:55
 
Fecha de Ingreso: abril-2008
Mensajes: 61
Antigüedad: 16 años
Puntos: 1
unset() todas las variables

Hola, es posible eliminar todas las variables existentes?

por ejemplo, tengo:
Código PHP:
$hola='hola';
$nombre='sss';
$idioma['si']='Sí';
$idioma['no']='No';
define(OK,'hola sss. No');

unset(
$hola);
unset(
$nombre);
unset(
$idioma); 
Lo que querria es que en vez de eliminar todas de una en una se eliminasen, salvo los DEFINE
  #2 (permalink)  
Antiguo 01/05/2009, 17:10
Avatar de dannce4life  
Fecha de Ingreso: junio-2008
Ubicación: localhost
Mensajes: 137
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: unset() todas las variables

fijate si funciona esto
Código php:
Ver original
  1. function unset_all_vars($a)
  2. {
  3.     foreach($a as $key => $val)
  4.     {
  5.         unset($GLOBALS[$key]);
  6.     }
  7.     return serialize($a);
  8. }
  9.  
  10. unset_all_vars(get_defined_vars());
__________________
Gracias
  #3 (permalink)  
Antiguo 02/05/2009, 04:11
 
Fecha de Ingreso: abril-2008
Mensajes: 61
Antigüedad: 16 años
Puntos: 1
Respuesta: unset() todas las variables

Pues no, esa es la que aparece en php.net/unset y ya la probé antes (y ahora nuevamente), pero no me sirve, es para define.

Gracias por la respuesta, supongo que tendré que ir poiendo unset de a uno por que no encontré en nignún lado la solucion.
  #4 (permalink)  
Antiguo 02/05/2009, 10:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: unset() todas las variables

carlos- estas completamente equivocado.... no es para "define" !!!

¿¿sabes que es define()???

debes saber que no sirve para declarar variables, sirve para definir constantes....


si lees el manual... get_defined_vars() devuelve un arreglo con las variables actualmente definidas en cierto contexto....

Código PHP:
$a '';
$foo 'bar';

var_dump(get_defined_vars()); 
¿¿además que sentido tiene borrar todas las variables actuales según tu???

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

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 03/05/2009, 01:19
 
Fecha de Ingreso: abril-2008
Mensajes: 61
Antigüedad: 16 años
Puntos: 1
Respuesta: unset() todas las variables

Okok, perdón! No recuerdo porque pense que era para otra cosa, de todas formas no me sirvió...

Lo que quería era liberar memoria, el script que tengo (o intento crear) se divide en dos partes, primero crea lo necesario según lo que pida el visitante, crearia la pagina y despues pondría los unset y haría la segunda parte del script, que serían updates a la base de datos para actualizarla y algunas funciones sin apenas relacion con la primera parte. Haría la segunda parte desde un panel de control pero prefiero hacerlo cada vez que un usuario identificado cargue cualquier página por que queda mejor.
Y pues si voy a eliminar variables, hagamoslo bien xD

Es posible?
  #6 (permalink)  
Antiguo 03/05/2009, 08:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: unset() todas las variables

no tiene caso, ya que PHP tiene un colector de basura, te lo aseguro... por mas que unsetees todas las variables, eso no mejora el rendimiento...

lo que si puede liberar recursos, que no es igual a memoria.... es cerrar conexiones después de utilizarlas (obviamente no dentro de un ciclo, si me entiendes), etc, etc....


yo voy a eso, la verdad... optimizar precozmente como tu planeas, es el primero de los errores....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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:14.