Annotation of embedaddon/php/ext/spl/tests/observer_004.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: SPL: SplObjectStorage serialization & overloading
3: --FILE--
4: <?php
5:
6: class TestClass
7: {
8: public $test = 25;
9:
10: public function __construct($test = 42)
11: {
12: $this->test = $test;
13: }
14: }
15:
16: class MyStorage extends SplObjectStorage
17: {
18: public $bla = 25;
19:
20: public function __construct($bla = 26)
21: {
22: $this->bla = $bla;
23: }
24: }
25:
26: $storage = new MyStorage();
27:
28: foreach(array(1,2) as $value)
29: {
30: $storage->attach(new TestClass($value));
31: }
32:
33: var_dump(count($storage));
34:
35: foreach($storage as $object)
36: {
37: var_dump($object->test);
38: }
39:
40: var_dump($storage);
41:
42: var_dump(serialize($storage));
43: echo "===UNSERIALIZE===\n";
44:
45: $storage2 = unserialize(serialize($storage));
46:
47: var_dump(count($storage2));
48:
49: foreach($storage2 as $object)
50: {
51: var_dump($object->test);
52: }
53:
54: var_dump($storage2);
55:
56: ?>
57: ===DONE===
58: <?php exit(0); ?>
59: --EXPECTF--
60: int(2)
61: int(1)
62: int(2)
63: object(MyStorage)#%d (2) {
64: ["bla"]=>
65: int(26)
66: ["storage":"SplObjectStorage":private]=>
67: array(2) {
68: ["%s"]=>
69: array(2) {
70: ["obj"]=>
71: object(TestClass)#%d (1) {
72: ["test"]=>
73: int(1)
74: }
75: ["inf"]=>
76: NULL
77: }
78: ["%s"]=>
79: array(2) {
80: ["obj"]=>
81: object(TestClass)#%d (1) {
82: ["test"]=>
83: int(2)
84: }
85: ["inf"]=>
86: NULL
87: }
88: }
89: }
90: string(%d) "%s"
91: ===UNSERIALIZE===
92: int(2)
93: int(1)
94: int(2)
95: object(MyStorage)#%d (2) {
96: ["bla"]=>
97: int(26)
98: ["storage":"SplObjectStorage":private]=>
99: array(2) {
100: ["%s"]=>
101: array(2) {
102: ["obj"]=>
103: object(TestClass)#%d (1) {
104: ["test"]=>
105: int(1)
106: }
107: ["inf"]=>
108: NULL
109: }
110: ["%s"]=>
111: array(2) {
112: ["obj"]=>
113: object(TestClass)#%d (1) {
114: ["test"]=>
115: int(2)
116: }
117: ["inf"]=>
118: NULL
119: }
120: }
121: }
122: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>