Maybe you check out the internals archives as an discussion about this topic
was held 1-2 days ago.

> Hi all
> 
> Using PHP5, I am trying to save some properties of an object when it
> is destroyed in its destructor, __destruct().  However, I have found
> that the session variable is NOT stored unless I explicitly destroy
> the object using unset().  If I leave php to finish executing the
> script and automatically destroy the object, the destructor IS called,
> however, the session variables are NOT saved.  A quick code example
> for clarity:
> 
> -----
> class StateMachine {
>   public $stateVariable;
>   function __destruct() {
>     $_SESSION['state'] = $this->stateVariable;
>   }
> }
> 
> $sm = new StateMachine();
> if (isset($_SESSION['state'])) {
>   $sm->stateVariable = $_SESSION['state'];
> } else {
>   $sm->stateVariable = 'foobar';
> }
> ----
> 
> (please ignore the obvious bad coding standard of making that var
> public and accessing it, this is for simplicity of the example).
> 
> Unless I do an unset($sm); at the end of a script like this, the
> $_SESSION array will never contain the state=>foobar key/value.
> 
> Can anyone offer some insight into this?
> 
> Thanks!
> Dave

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to