~ubuntu-branches/ubuntu/quantal/php5/quantal

« back to all changes in this revision

Viewing changes to ext/spl/tests/observer_006.phpt

  • Committer: Bazaar Package Importer
  • Author(s): Sean Finney
  • Date: 2009-07-01 09:12:10 UTC
  • mto: (0.9.1) (1.1.17 upstream)
  • mto: This revision was merged to the branch mainline in revision 58.
  • Revision ID: james.westby@ubuntu.com-20090701091210-go0h6506p62on17r
Tags: upstream-5.3.0
ImportĀ upstreamĀ versionĀ 5.3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--TEST--
 
2
SPL: SplObjectStorage with accociatied information
 
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=>"foo",2=>42) as $key => $value)
 
29
{
 
30
     $storage->attach(new TestClass($key), $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
$storage->attach(new TestClass(3), new stdClass);
 
56
$storage->attach(new TestClass(4), new TestClass(5));
 
57
echo "===UNSERIALIZE2===\n";
 
58
var_dump(unserialize(serialize($storage)));
 
59
$storage->rewind();
 
60
$storage->next();
 
61
var_dump($storage->key());
 
62
var_dump($storage->current());
 
63
var_dump($storage->getInfo());
 
64
$storage->setInfo("bar");
 
65
var_dump($storage->getInfo());
 
66
echo "===UNSERIALIZE3===\n";
 
67
var_dump(unserialize(serialize($storage)));
 
68
$storage->rewind();
 
69
$storage->next();
 
70
$storage->next();
 
71
var_dump($storage->key());
 
72
var_dump($storage->current());
 
73
$storage->attach($storage->current(), "replaced");
 
74
echo "===UNSERIALIZE4===\n";
 
75
var_dump(unserialize(serialize($storage)));
 
76
 
 
77
?>
 
78
===DONE===
 
79
<?php exit(0); ?>
 
80
--EXPECTF--
 
81
int(2)
 
82
int(1)
 
83
int(2)
 
84
object(MyStorage)#%d (2) {
 
85
  ["bla"]=>
 
86
  int(26)
 
87
  ["storage":"SplObjectStorage":private]=>
 
88
  array(2) {
 
89
    ["%s"]=>
 
90
    array(2) {
 
91
      ["obj"]=>
 
92
      object(TestClass)#%d (1) {
 
93
        ["test"]=>
 
94
        int(1)
 
95
      }
 
96
      ["inf"]=>
 
97
      string(3) "foo"
 
98
    }
 
99
    ["%s"]=>
 
100
    array(2) {
 
101
      ["obj"]=>
 
102
      object(TestClass)#%d (1) {
 
103
        ["test"]=>
 
104
        int(2)
 
105
      }
 
106
      ["inf"]=>
 
107
      int(42)
 
108
    }
 
109
  }
 
110
}
 
111
string(%d) "%s"
 
112
===UNSERIALIZE===
 
113
int(2)
 
114
int(1)
 
115
int(2)
 
116
object(MyStorage)#%d (2) {
 
117
  ["bla"]=>
 
118
  int(26)
 
119
  ["storage":"SplObjectStorage":private]=>
 
120
  array(2) {
 
121
    ["%s"]=>
 
122
    array(2) {
 
123
      ["obj"]=>
 
124
      object(TestClass)#%d (1) {
 
125
        ["test"]=>
 
126
        int(1)
 
127
      }
 
128
      ["inf"]=>
 
129
      string(3) "foo"
 
130
    }
 
131
    ["%s"]=>
 
132
    array(2) {
 
133
      ["obj"]=>
 
134
      object(TestClass)#%d (1) {
 
135
        ["test"]=>
 
136
        int(2)
 
137
      }
 
138
      ["inf"]=>
 
139
      int(42)
 
140
    }
 
141
  }
 
142
}
 
143
===UNSERIALIZE2===
 
144
object(MyStorage)#%d (2) {
 
145
  ["bla"]=>
 
146
  int(26)
 
147
  ["storage":"SplObjectStorage":private]=>
 
148
  array(4) {
 
149
    ["%s"]=>
 
150
    array(2) {
 
151
      ["obj"]=>
 
152
      object(TestClass)#%d (1) {
 
153
        ["test"]=>
 
154
        int(1)
 
155
      }
 
156
      ["inf"]=>
 
157
      string(3) "foo"
 
158
    }
 
159
    ["%s"]=>
 
160
    array(2) {
 
161
      ["obj"]=>
 
162
      object(TestClass)#%d (1) {
 
163
        ["test"]=>
 
164
        int(2)
 
165
      }
 
166
      ["inf"]=>
 
167
      int(42)
 
168
    }
 
169
    ["%s"]=>
 
170
    array(2) {
 
171
      ["obj"]=>
 
172
      object(TestClass)#%d (1) {
 
173
        ["test"]=>
 
174
        int(3)
 
175
      }
 
176
      ["inf"]=>
 
177
      object(stdClass)#%d (0) {
 
178
      }
 
179
    }
 
180
    ["%s"]=>
 
181
    array(2) {
 
182
      ["obj"]=>
 
183
      object(TestClass)#%d (1) {
 
184
        ["test"]=>
 
185
        int(4)
 
186
      }
 
187
      ["inf"]=>
 
188
      object(TestClass)#%d (1) {
 
189
        ["test"]=>
 
190
        int(5)
 
191
      }
 
192
    }
 
193
  }
 
194
}
 
195
int(1)
 
196
object(TestClass)#%d (1) {
 
197
  ["test"]=>
 
198
  int(2)
 
199
}
 
200
int(42)
 
201
string(3) "bar"
 
202
===UNSERIALIZE3===
 
203
object(MyStorage)#%d (2) {
 
204
  ["bla"]=>
 
205
  int(26)
 
206
  ["storage":"SplObjectStorage":private]=>
 
207
  array(4) {
 
208
    ["%s"]=>
 
209
    array(2) {
 
210
      ["obj"]=>
 
211
      object(TestClass)#%d (1) {
 
212
        ["test"]=>
 
213
        int(1)
 
214
      }
 
215
      ["inf"]=>
 
216
      string(3) "foo"
 
217
    }
 
218
    ["%s"]=>
 
219
    array(2) {
 
220
      ["obj"]=>
 
221
      object(TestClass)#%d (1) {
 
222
        ["test"]=>
 
223
        int(2)
 
224
      }
 
225
      ["inf"]=>
 
226
      string(3) "bar"
 
227
    }
 
228
    ["%s"]=>
 
229
    array(2) {
 
230
      ["obj"]=>
 
231
      object(TestClass)#%d (1) {
 
232
        ["test"]=>
 
233
        int(3)
 
234
      }
 
235
      ["inf"]=>
 
236
      object(stdClass)#%d (0) {
 
237
      }
 
238
    }
 
239
    ["%s"]=>
 
240
    array(2) {
 
241
      ["obj"]=>
 
242
      object(TestClass)#%d (1) {
 
243
        ["test"]=>
 
244
        int(4)
 
245
      }
 
246
      ["inf"]=>
 
247
      object(TestClass)#%d (1) {
 
248
        ["test"]=>
 
249
        int(5)
 
250
      }
 
251
    }
 
252
  }
 
253
}
 
254
int(2)
 
255
object(TestClass)#7 (1) {
 
256
  ["test"]=>
 
257
  int(3)
 
258
}
 
259
===UNSERIALIZE4===
 
260
object(MyStorage)#%d (2) {
 
261
  ["bla"]=>
 
262
  int(26)
 
263
  ["storage":"SplObjectStorage":private]=>
 
264
  array(4) {
 
265
    ["%s"]=>
 
266
    array(2) {
 
267
      ["obj"]=>
 
268
      object(TestClass)#%d (1) {
 
269
        ["test"]=>
 
270
        int(1)
 
271
      }
 
272
      ["inf"]=>
 
273
      string(3) "foo"
 
274
    }
 
275
    ["%s"]=>
 
276
    array(2) {
 
277
      ["obj"]=>
 
278
      object(TestClass)#%d (1) {
 
279
        ["test"]=>
 
280
        int(2)
 
281
      }
 
282
      ["inf"]=>
 
283
      string(3) "bar"
 
284
    }
 
285
    ["%s"]=>
 
286
    array(2) {
 
287
      ["obj"]=>
 
288
      object(TestClass)#%d (1) {
 
289
        ["test"]=>
 
290
        int(3)
 
291
      }
 
292
      ["inf"]=>
 
293
      string(8) "replaced"
 
294
    }
 
295
    ["%s"]=>
 
296
    array(2) {
 
297
      ["obj"]=>
 
298
      object(TestClass)#%d (1) {
 
299
        ["test"]=>
 
300
        int(4)
 
301
      }
 
302
      ["inf"]=>
 
303
      object(TestClass)#%d (1) {
 
304
        ["test"]=>
 
305
        int(5)
 
306
      }
 
307
    }
 
308
  }
 
309
}
 
310
===DONE===