Annotation of embedaddon/php/ext/spl/tests/bug45614.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: SPL: Bug#45614 (ArrayIterator can show 1st private prop of wrapped object)
3: --FILE--
4: <?php
5: class C {
6: private $priv1 = 'secret1';
7: private $priv2 = 'secret2';
8: public $pub1 = 'public1';
9: public $pub2 = 'public2';
10: public $pub3 = 'public3';
11: }
12:
13: function showFirstTwoItems($it) {
14: echo str_replace("\0", '\0', $it->key()) . " => " . $it->current() .
15: "\n";
16: $it->next();
17: echo str_replace("\0", '\0', $it->key()) . " => " . $it->current() .
18: "\n";
19: }
20:
21: $ao = new ArrayObject(new C);
22: $ai = $ao->getIterator();
23:
24: echo "--> Show the first two items:\n";
25: showFirstTwoItems($ai);
26:
27: echo "\n--> Rewind and show the first two items:\n";
28: $ai->rewind();
29: showFirstTwoItems($ai);
30:
31: echo "\n--> Invalidate current position and show the first two items:\n";
32: unset($ai[$ai->key()]);
33: $ai->current();
34: showFirstTwoItems($ai);
35:
36: echo "\n--> Rewind, seek and show the first two items:\n";
37: $ai->rewind();
38: $ai->seek(0);
39: showFirstTwoItems($ai);
40: ?>
41: --EXPECT--
42: --> Show the first two items:
43: pub1 => public1
44: pub2 => public2
45:
46: --> Rewind and show the first two items:
47: pub1 => public1
48: pub2 => public2
49:
50: --> Invalidate current position and show the first two items:
51: pub1 => public1
52: pub3 => public3
53:
54: --> Rewind, seek and show the first two items:
55: pub1 => public1
56: pub3 => public3
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>