ID: 28325
User updated by: antonr at game dot permonline dot ru
Reported By: antonr at game dot permonline dot ru
Status: Open
Bug Type: Class/Object related
Operating System: Win32
PHP Version: 5CVS-2004-05-08 (dev)
New Comment:
but if change the line
$a->myclass2->myclass1 = $a;
to
$a->myclass2->myclass1 = &$a;
serialization/unserialization works fine
Previous Comments:
------------------------------------------------------------------------
[2004-05-08 12:12:30] antonr at game dot permonline dot ru
Description:
------------
I have one object with property "myclass1", referenced to second
object. And property "myclass2" of second object, referenced to first
object.
When I serialize the first object and unserialize the result string, I
get three objects: two copies of first object and a copy of second
object.
Reproduce code:
---------------
<?php
class MyClass1
{ public $myclass2;
public $number;
}
class MyClass2
{ public $myclass1;
}
$a = new MyClass1;
$a->number = 1;
$a->myclass2 = new MyClass2;
$a->myclass2->myclass1 = $a;
$b = unserialize(serialize($a));
$b->number = 2;
echo $b->number;
echo "\n";
echo $b->myclass2->myclass1->number;
?>
Expected result:
----------------
If serialization was made correctly, then we would get that
$b and $b->myclass2->myclass1 are references to one instance, and the
output of script must be:
2
2
Actual result:
--------------
The actual output is
2
1
this means, that $b and $b->myclass2->myclass1 aren't references to the
same instance
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=28325&edit=1