<?php
$arr = array(
'a' => 'A',
'b' => 'B',
'c' => 'C');
var_dump($arr);
// Taking "$val" as a reference here allows modifying the parent hashtable
// directly, i.e. the $val ref "knows" its parent key in some sense
foreach ($arr as &$val) {
if ($val == 'B') {
$val = 'X';
}
}
var_dump($arr);
// However, it doesn't allow you to unset the parent key...
foreach ($arr as &$val) {
if ($val == 'A') {
unset($val);
}
}
var_dump($arr);
array(3) {
["a"]=>
string(1) "A"
["b"]=>
string(1) "B"
["c"]=>
string(1) "C"
}
array(3) {
["a"]=>
string(1) "A"
["b"]=>
string(1) "X"
["c"]=>
&string(1) "C"
}
array(3) {
["a"]=>
string(1) "A"
["b"]=>
string(1) "X"
["c"]=>
&string(1) "C"
}
Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0
array(3) {
["a"]=>
string(1) "A"
["b"]=>
string(1) "B"
["c"]=>
string(1) "C"
}
array(3) {
["a"]=>
&string(1) "A"
["b"]=>
&string(1) "X"
["c"]=>
&string(1) "C"
}
array(3) {
["a"]=>
string(1) "A"
["b"]=>
&string(1) "X"
["c"]=>
&string(1) "C"
}
Output for 4.4.2 - 4.4.9
<br />
<b>Parse error</b>: syntax error, unexpected '&', expecting T_VARIABLE or '$' in <b>/in/pSILX</b> on line <b>12</b><br />
Process exited with code 255.
<br />
<b>Parse error</b>: parse error, unexpected '&', expecting T_VARIABLE or '$' in <b>/in/pSILX</b> on line <b>12</b><br />
Process exited with code 255.
Output for 4.3.2 - 4.3.4
<br />
<b>Parse error</b>: parse error, expecting `T_VARIABLE' or `'$'' in <b>/in/pSILX</b> on line <b>12</b><br />
Process exited with code 255.