Annotation of embedaddon/php/ext/standard/tests/serialize/bug64146.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #64146 (serialize incorrectly saving objects when they are cloned)
! 3: --FILE--
! 4: <?php
! 5:
! 6: echo "Test\n";
! 7:
! 8: class A
! 9: {
! 10: public $a = array();
! 11:
! 12: public function __construct()
! 13: {
! 14: $this->a[] = new B(1);
! 15: $this->a[] = new B(2);
! 16: }
! 17: }
! 18:
! 19: class B implements Serializable
! 20: {
! 21: public $b;
! 22:
! 23: public function __construct($c)
! 24: {
! 25: $this->b = new C($c);
! 26: }
! 27:
! 28: public function serialize()
! 29: {
! 30: return serialize(clone $this->b);
! 31: }
! 32:
! 33: public function unserialize($data)
! 34: {
! 35: $this->b = unserialize($data);
! 36: }
! 37: }
! 38:
! 39: class C
! 40: {
! 41: public $c;
! 42:
! 43: public function __construct($c)
! 44: {
! 45: $this->c = $c;
! 46: }
! 47: }
! 48:
! 49: $a = unserialize(serialize(new A()));
! 50:
! 51: print $a->a[0]->b->c . "\n";
! 52: print $a->a[1]->b->c . "\n";
! 53:
! 54: ?>
! 55: Done
! 56: --EXPECT--
! 57: Test
! 58: 1
! 59: 2
! 60: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>