foreach-Schlaufen mit Referenz abkürzen (PHP)

Diesen Trick hatte ich offenbar überlesen: Um Array-Werte in einer foreach-Schlaufe zu verändern, kann man anstelle der üblichen Konstruktion hier:

  foreach($array as $index => $value) {
    $array[$index] = $value + 2;
  }

…einfach die Werte per Referenz adressieren:

  foreach($array as &$value) {
    $value += 2;
  }

2 Gedanken zu „foreach-Schlaufen mit Referenz abkürzen (PHP)“

  1. OMG… Schau dir lieber mal eine modernere Sprache an, z.b. .NET, Python oder Java.

    Der wirklich ganz grosse Pferdefuss bei PHP ist, dass es standardmässig Werte kopiert statt referenziert. Will man Referenzen (und das will man eigentlich immer, wenn man OO programmiert), muss man immer (noch!?) an das unsägliche Ampersand denken…

    Auch beim Beispiel etwas weiter unten musste ich schmunzeln. Bei .NET hätte man einen systemeigenen Datentypen zur Verfügung, der die Sortierung nach Schlüssel automatisch macht.

    Guäts Nois von einem gelegentlichen Leser :)

  2. Sagt der Herr mit einem eigenen WordPress-Blog das ebenfalls auf PHP basiert… ;-)

    Nein, im Ernst, PHP merkt man die prozedurale Herkunft an, auf jeder Zeile. So richtig objektorientierte Freude will sich einfach nicht einstellen.

Kommentare sind geschlossen.