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