Annotation of embedaddon/php/tests/lang/foreachLoopObjects.005.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Foreach loop tests - removing properties before and after the current property during the loop.
3: --FILE--
4: <?php
5:
6: class C {
7: public $a = "Original a";
8: public $b = "Original b";
9: public $c = "Original c";
10: public $d = "Original d";
11: public $e = "Original e";
12: }
13:
14: echo "\nRemoving properties before the current element from an iterated object.\n";
15: $obj = new C;
16: $count=0;
17: foreach ($obj as $v) {
18: if ($v==$obj->a) {
19: unset($obj->c);
20: }
21: var_dump($v);
22: if (++$count>10) {
23: echo "Loop detected.\n";
24: break;
25: }
26: }
27: var_dump($obj);
28:
29: echo "\nRemoving properties before the current element from an iterated object.\n";
30: $obj = new C;
31: foreach ($obj as $v) {
32: if ($v==$obj->b) {
33: unset($obj->a);
34: }
35: var_dump($v);
36: if (++$count>10) {
37: echo "Loop detected.\n";
38: break;
39: }
40: }
41: var_dump($obj);
42:
43:
44: ?>
45: --EXPECTF--
46:
47: Removing properties before the current element from an iterated object.
48: string(10) "Original a"
49: string(10) "Original b"
50: string(10) "Original d"
51: string(10) "Original e"
52: object(C)#%d (4) {
53: ["a"]=>
54: string(10) "Original a"
55: ["b"]=>
56: string(10) "Original b"
57: ["d"]=>
58: string(10) "Original d"
59: ["e"]=>
60: string(10) "Original e"
61: }
62:
63: Removing properties before the current element from an iterated object.
64: string(10) "Original a"
65: string(10) "Original b"
66: string(10) "Original c"
67: string(10) "Original d"
68: string(10) "Original e"
69: object(C)#%d (4) {
70: ["b"]=>
71: string(10) "Original b"
72: ["c"]=>
73: string(10) "Original c"
74: ["d"]=>
75: string(10) "Original d"
76: ["e"]=>
77: string(10) "Original e"
78: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>