| 
	
 | 
 Posted by Marek Kilimajer on 04/11/05 23:32 
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
 
  
Navigation:
[Reply to this message] 
 |