Re: deleting $_SESSION

From: Date: Mon, 11 Apr 2005 18:32:44 +0000
Subject: Re: deleting $_SESSION
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-212821@lists.php.net to get a copy of this message
Jochem Maas wrote:
AndreaD wrote:
I have a session variable called $_SESSION['total'] the problem is I can't delete/reset it. I have tried $_SESSION['total']= 0; $_SESSION['total']= "";
I guess you didn't know/think of trying null: $_SESSION['total'] = null; ...which has the same effect as using: unset($_SESSION['total']); // as you have been told on at least 3 diff occasions ;-) this oneliner might give you a little insight: <?php $x=1;$y=2;unset($x);$y=null;var_dump($x,isset($x),empty($x),$y,isset($y),empty($y)); ?> I encourage you to read the following pages for a better understanding of variables: http://php.net/unset http://php.net/empty http://php.net/isset, and this section: http://php.net/variables have fun! rgds, Jochem PS - personally I try to remember to set a var to null if the code is inside a loop, in order to minimize function call overhead. (anyone with real skill care to comment as to whether there is actually a difference between setting a var to null and calling unset on it? also speedwise?)
If you set a variable to null, it will be null. If it's unset, it no longer exists, it's not even a null. But will evaluate to null if used and notice will be generated. This 7-liner will ilustrate it: error_reporting(E_ALL); $null = $unset = 0; // to get started var_dump($null, $unset); $null = null; unset($unset); var_dump($null, $unset); // both are nulls, but notice is generated var_dump(array_key_exists('null', $GLOBALS), array_key_exists('unset', $GLOBALS)); // 'unset' is no longer in $GLOBALS Speed? I don't think there is much difference. But I would use unset() to get rid of unused variables as they are pesistent.

« previous php.general (#212821) next »