bucle foreach y referencia de & $ value
¿Por qué un bucle foreach vacío puede cambiar el resultado?
Tengo el siguiente código:
$variable = [1,2,3,4];
foreach ($variable as $key => &$value)
$value ++;
var_dump($variable);
El resultado que obtengo es:
array (size=4)
0 => int 2
1 => int 3
2 => int 4
3 => &int 5
Ahora, cuando agrego un bucle foreach vacío como este:
$variable = [1,2,3,4];
foreach ($variable as $key => &$value)
$value ++;
foreach ($variable as $key => $value);
var_dump($variable);
Entiendo esto :
array (size=4)
0 => int 2
1 => int 3
2 => int 4
3 => &int 4
¿Alguien puede explicarme por qué el último elemento no cambia cuando agrego el segundo bucle vacío, y por qué hay un & delante del último elemento?