9 de junio de 2009

PHP: Cómo destruir variables

En ocasiones cuando desarrollamos un programa o una página web nos interesa destruir una o varias variables.

¿En que consiste destruir una variable? Consiste en borrarla por completo de la memoria cuando el ordenador está ejecutando el código de tal manera que es como si esa variable nunca hubiese existido, es algo mucho más potente que simplemente dejar la variable con valor null.

PHP para destruir variables nos proporciona la función unset, con esta función podemos destruir una o varias variables a la vez.

Para destruir por ejemplo la variable $pescado usaríamos:

<?php
unset($pescado);
?>

Para destruir varias variables a la vez, por ejemplo, $pescado, $carne, $huevos, usaríamos:

<?php
unset($pescado,$carne,$huevos);
?>

¿Y qué sucede cuando ejecutamos esta instrucción dentro de una función o desde dentro de un método?
Pues que sólo destruimos esas variables dentro de la función o del método, no a nivel global.

¿Y cómo podemos destruir una variable a nivel global desde el interior de una función o desde el interior de un método?
Pues usamos el identificador $GLOBALS para acceder a ellas. Os pongo un ejemplo con la variable global $pescado:

<?php
unset($GLOBALS['pescado']);
?>

Obviamente con varias variables globales sería de la siguiente manera (siendo $pescado, $carne y $huevos esas variables):

<?php
unset($GLOBALS['pescado'],$GLOBALS['carne'],$GLOBALS['huevos']);
?>

Espero que os sea de utilidad a todos :)

2 comentarios:

Anónimo dijo...

Excelente!! Me ha servido de mucho, muchas gracias!

Unknown dijo...

Estoy empezando mi formación php y hasta el momento me han enseñado a construir. Me ha llamado la atención que también se puede destruir. Saludos!