Foros del Web » Programando para Internet » PHP »

Unset

Estas en el tema de Unset en el foro de PHP en Foros del Web. Buenas!. Alguien tiene idea si por ejemplo, las variables a las cuales yo le asigne valores dentro de una funcion cuando esta es llamada, son ...
  #1 (permalink)  
Antiguo 21/12/2009, 09:33
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
Unset

Buenas!.

Alguien tiene idea si por ejemplo, las variables a las cuales yo le asigne valores dentro de una funcion cuando esta es llamada, son automaticamente borradas y la memoria es vaciada cuando termina la ejecucion de la misma?

Hacer esto
Código PHP:
Ver original
  1. function alguna(){
  2. $var = "contenido";
  3. echo $var;
  4. unset($var);
  5. }

es en vano???

$var se limpiara por si sola en caso de no usar unset?
  #2 (permalink)  
Antiguo 21/12/2009, 09:40
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Unset

Si, la variable deja de existir desde el momento en el que salis de la funcion. El alcance de la variable esta solo dentro del contenido de la funcion alguna.

Saludos.
  #3 (permalink)  
Antiguo 21/12/2009, 10:08
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
Respuesta: Unset

y por ejemplo...

Yo tengo una variable de tipo array muy grande
Cuando hago $var = array(); la memoria es liberada? o tengo que hacer

unset($var);
$var = array();

Son preguntas tontas, pero estoy en la etapa de Hilado fino y optimizacion

Gracias!
  #4 (permalink)  
Antiguo 21/12/2009, 10:13
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Unset

Bueno, PHP tiene un recolector de basura que puede hacer ese trabajo por vos, korg1988, no creo que sea necesario que te preocupes por eso.

Supongamos que vos tenes un sistema con funciones del tipo que mostras vos, entonces lo que te mencione arriba es suficiente, PHP va a recoger variables en memoria sin uso y te va a liberar espacio. Ahora si vos tenes conexiones sin cerrar (mysql_close), y tenes resultados sin liberar (no usas mysql_free_result), en momentos que tengas muchos usuarios conectados podes llegar a tener conflictos en tu sistema. En eso deberias concentrarte.

Saludos.
  #5 (permalink)  
Antiguo 21/12/2009, 12:26
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
Respuesta: Unset

bueno a la hora de comprobar si existe $array['key']

que me recomiendan???

isset($array['key'])

o

array_key_exists('key', $array)
  #6 (permalink)  
Antiguo 21/12/2009, 13:20
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: Unset

Yo uso isset, lo veo en mas ejemplos que array_key_exists. No es muy profesional mi comentario que digamos, jeje.

Saludos.
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 09:24.