foreach-Schleife und Referenz von & $ value

Warum ist eine leere foreach-Schleife kann das Ergebnis ändern.

Ich habe folgenden Code:

$variable = [1,2,3,4];
foreach ($variable  as $key => &$value) 
  $value ++;

var_dump($variable);

Das Ergebnis ist:

array (size=4)
  0 => int 2
  1 => int 3
  2 => int 4
  3 => &int 5

Wenn ich jetzt eine leere foreach-Schleife wie folgt hinzufüge:

$variable  = [1,2,3,4];
foreach ($variable  as $key => &$value) 
  $value ++;

foreach ($variable  as $key => $value);
  var_dump($variable);

Ich bekomme das:

array (size=4)
  0 => int 2
  1 => int 3
  2 => int 4
  3 => &int 4

Kann mir jemand erklären, warum sich das letzte Element nicht ändert, wenn ich die zweite leere Schleife hinzufüge, und warum es ein & vor dem letzten Element gibt?