Re: deleting $_SESSION

From: Date: Mon, 11 Apr 2005 20:32:31 +0000
Subject: Re: deleting $_SESSION
References: 1 2 3 4  Groups: php.general 
Request: Send a blank email to php-general+get-212840@lists.php.net to get a copy of this message
Jochem Maas wrote:
John Nichel wrote:
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 ;-)
Not true. If you set it to null, it still exists...it's just null. If you unset it, the variable no longer exists.
fair enough, but then how do you differentiate between a var that exists and is null and a non-existant var? Marek pointed out that setting error reporting to E_ALL, shows a notice when you var_dump() the unset() var and not the null var, but other than that the unset() var and the null var give the same result from isset() and empty() e.g: error_reporting(E_ALL); $X = array("total" => 1); $X["total"] = null; if ( isset ( $X["total"] ) ) {
    echo ( "Yes" );
} else {
    echo ( "No" );
} var_dump( $X["total"] ); unset ( $X["total"] ); if ( isset ( $X["total"] ) ) {
    echo ( "Yes" );
} else {
    echo ( "No" );
} var_dump( $X["total"] ); which produces the following for me: NoNULL NoPHP Notice: Undefined index: total in Command line code on line 23 NULL so that means you would have to set a suitable error handler for E_NOTICE just before the place you want to check if the var exists and unset it immediately afterwards??
No, use isset() or empty() to check if the variable exists and you won't get notices

« previous php.general (#212840) next »