Annotation of embedaddon/php/ext/standard/tests/serialize/bug64146.phpt, revision 1.1.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>