Annotation of embedaddon/php/ext/spl/tests/bug45826.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: ArrayObject/ArrayIterator : serialization
3: --FILE--
4: <?php
5: $o = new ArrayObject();
6: $y = new StdClass;
7: $o->append($y);
8: $o->append($y);
9: $o->append($o);
10:
11: var_dump($o[0] === $o[1]);
12: var_dump($o[2] === $o);
13:
14: $s1 = serialize($o);
15: $s2 = $o->serialize();
16: var_dump($s1);
17: var_dump($s2);
18:
19: $o1 =unserialize($s1);
20:
21: var_dump($o1[0] === $o1[1]);
22: var_dump($o1[2] === $o1);
23:
24: $o2 = new ArrayObject();
25: $o2->unserialize($s2);
26:
27: var_dump($o2[0] === $o2[1]);
28: var_dump($o2[2] !== $o2);
29: var_dump($o2[2][2] === $o2[2]);
30:
31: echo "#### Extending ArrayObject\n";
32: unset($o,$x,$s1,$s2,$o1,$o2);
33: class ArrayObject2 extends ArrayObject {
34: public function serialize() {
35: return parent::serialize();
36: }
37:
38: public function unserialize($s) {
39: return parent::unserialize($s);
40: }
41: }
42:
43: $o = new ArrayObject2();
44: $y = new StdClass;
45: $o->append($y);
46: $o->append($y);
47: $o->append($o);
48:
49: var_dump($o[0] === $o[1]);
50: var_dump($o[2] === $o);
51:
52: $s1 = serialize($o);
53: $s2 = $o->serialize();
54: var_dump($s1);
55: var_dump($s2);
56:
57: $o1 =unserialize($s1);
58:
59: var_dump($o1[0] === $o1[1]);
60: var_dump($o1[2] === $o1);
61:
62: $o2 = new ArrayObject2();
63: $o2->unserialize($s2);
64:
65: var_dump($o2[0] === $o2[1]);
66: var_dump($o2[2] !== $o2);
67: var_dump($o2[2][2] === $o2[2]);
68: ?>
69: --EXPECT--
70: bool(true)
71: bool(true)
72: string(84) "C:11:"ArrayObject":60:{x:i:0;a:3:{i:0;O:8:"stdClass":0:{}i:1;r:4;i:2;r:1;};m:a:0:{}}"
73: string(125) "x:i:0;a:3:{i:0;O:8:"stdClass":0:{}i:1;r:3;i:2;C:11:"ArrayObject":45:{x:i:0;a:3:{i:0;r:3;i:1;r:3;i:2;r:5;};m:a:0:{}}};m:a:0:{}"
74: bool(true)
75: bool(true)
76: bool(true)
77: bool(true)
78: bool(true)
79: #### Extending ArrayObject
80: bool(true)
81: bool(true)
82: string(85) "C:12:"ArrayObject2":60:{x:i:0;a:3:{i:0;O:8:"stdClass":0:{}i:1;r:4;i:2;r:1;};m:a:0:{}}"
83: string(126) "x:i:0;a:3:{i:0;O:8:"stdClass":0:{}i:1;r:3;i:2;C:12:"ArrayObject2":45:{x:i:0;a:3:{i:0;r:3;i:1;r:3;i:2;r:5;};m:a:0:{}}};m:a:0:{}"
84: bool(true)
85: bool(true)
86: bool(true)
87: bool(true)
88: bool(true)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>