2
Foreach loop tests - modifying the array during the loop.
6
echo "\nDirectly changing array values.\n";
7
$a = array("original.1","original.2","original.3");
8
foreach ($a as $k=>$v) {
14
echo "\nModifying the foreach \$value.\n";
15
$a = array("original.1","original.2","original.3");
16
foreach ($a as $k=>$v) {
22
echo "\nModifying the foreach &\$value.\n";
23
$a = array("original.1","original.2","original.3");
24
foreach ($a as $k=>&$v) {
29
echo "\nPushing elements onto an unreferenced array.\n";
30
$a = array("original.1","original.2","original.3");
33
array_push($a, "new.$counter");
35
//avoid infinite loop if test is failing
37
echo "Loop detected\n";
43
echo "\nPushing elements onto an unreferenced array, using &\$value.\n";
44
$a = array("original.1","original.2","original.3");
47
array_push($a, "new.$counter");
49
//avoid infinite loop if test is failing
51
echo "Loop detected\n";
57
echo "\nPopping elements off an unreferenced array.\n";
58
$a = array("original.1","original.2","original.3");
65
echo "\nPopping elements off an unreferenced array, using &\$value.\n";
66
$a = array("original.1","original.2","original.3");
76
Directly changing array values.
77
string(10) "original.1"
78
string(10) "original.2"
79
string(10) "original.3"
89
Modifying the foreach $value.
92
string(10) "original.1"
94
string(10) "original.2"
96
string(10) "original.3"
99
Modifying the foreach &$value.
102
string(9) "changed.0"
104
string(9) "changed.1"
106
&string(9) "changed.2"
109
Pushing elements onto an unreferenced array.
112
string(10) "original.1"
114
string(10) "original.2"
116
string(10) "original.3"
125
Pushing elements onto an unreferenced array, using &$value.
129
string(10) "original.1"
131
string(10) "original.2"
133
string(10) "original.3"
160
Popping elements off an unreferenced array.
161
string(10) "original.1"
162
string(10) "original.2"
163
string(10) "original.3"
167
Popping elements off an unreferenced array, using &$value.
168
string(10) "original.1"
169
string(10) "original.2"
172
string(10) "original.1"
b'\\ No newline at end of file'