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