#36696 [Asn]: __destruct() is called before serialize() when object stored in session

From: Date: Mon, 13 Mar 2006 18:54:56 +0000
Subject: #36696 [Asn]: __destruct() is called before serialize() when object stored in session
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-94305@lists.php.net to get a copy of this message
ID: 36696 Updated by: helly@php.net Reported By: iain at iaindooley dot com Status: Assigned Bug Type: Session related Operating System: * PHP Version: 5.1.2 Assigned To: sascha New Comment: exactly Previous Comments: ------------------------------------------------------------------------ [2006-03-13 11:07:12] iain at iaindooley dot com Just for clarity, i presume you mean using: session_write_close(); before the scripts conclude. ------------------------------------------------------------------------ [2006-03-13 10:53:59] helly@php.net The solution is easy: close the session before ending your scripts. Otherwise this is a session shutdown issue. Assigning to primary session maintainer. ------------------------------------------------------------------------ [2006-03-11 04:30:02] iain at iaindooley dot com Description: ------------ if an object that impelements Serializable is stored in the session, and implements __destruct, then __destruct is called before serialize() when the script finishes execution. Reproduce code: --------------- <? class SomeClass implements Serializable { function SomeClass() { } public function unserialize($dat) { echo('called unseriazlize'); } public function serialize() { echo('called serialize<br />'); } function __destruct() { echo('called __destruct<br />'); } } session_name('god'); session_start(); $_SESSION['var'] = new SomeClass(); ?> Expected result: ---------------- called serialize called __destruct Actual result: -------------- called __destruct called serialize ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=36696&edit=1

« previous php.bugs (#94305) next »