1--TEST--
2Foreach loop tests - Removing the current element from an iterated object.
3--FILE--
4<?php
5
6class 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
14echo "\nRemoving the current element from an iterated object.\n";
15$obj = new C;
16$count=0;
17foreach ($obj as $v) {
18	if ($v==$obj->b) {
19		unset($obj->b);
20	}
21	var_dump($v);
22	if (++$count>10) {
23		echo "Loop detected.\n";
24		break;
25	}
26}
27var_dump($obj);
28
29
30?>
31===DONE===
32--EXPECTF--
33Removing the current element from an iterated object.
34string(10) "Original a"
35string(10) "Original b"
36
37Notice: Undefined property: C::$b in %s on line %d
38string(10) "Original c"
39
40Notice: Undefined property: C::$b in %s on line %d
41string(10) "Original d"
42
43Notice: Undefined property: C::$b in %s on line %d
44string(10) "Original e"
45object(C)#%d (4) {
46  ["a"]=>
47  string(10) "Original a"
48  ["c"]=>
49  string(10) "Original c"
50  ["d"]=>
51  string(10) "Original d"
52  ["e"]=>
53  string(10) "Original e"
54}
55===DONE===
56