|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2006-03-11 04:30 UTC] 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
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Oct 25 20:00:01 2025 UTC |
/** * @param mixed $user * @return void */ function setsessionuser($user){ $_SESSION['user']=serialize($user); } /** * getsessionuser() * @return object User */ function getsessionuser(){ return(isset($_SESSION['user']))?unserialize($_SESSION['user']):null; } class User extends User_data{ test and remake