Re: deleting $_SESSION
| From: | Marek Kilimajer | 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:No, use isset() or empty() to check if the variable exists and you won't get noticesJochem Maas wrote: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"] ) ) {AndreaD wrote:Not true. If you set it to null, it still exists...it's just null. If you unset it, the variable no longer exists.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 ;-)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??