PHP 4 führte das foreach-Konstrukt ein, ähnlich wie Perl und andere Sprachen. Dies ist lediglich eine praktische Möglichkeit, über ein Array zu iterieren. foreach kann nur mit Arrays verwendet werden und es tritt ein Fehler auf, wenn versucht wird, es mit anderen Datentypen oder einer nicht initialisierten Variablen zu verwenden. Es gibt zwei Syntaxen, wobei die zweite eine weniger wichtige, aber nützliche Erweiterung der ersten ist.
foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
Das erste Format iteriert über das angegebene array_expression-Array. Bei jedem Durchlauf der Schleife wird $value der Wert der aktuellen Zelle zugewiesen und der Zeiger innerhalb des Arrays wird um einen Schritt vorwärts bewegt (sodass die nächste Zelle in der nächsten Schleife abgerufen wird).
Das zweite Format macht dasselbe, außer dass der Schlüsselname der aktuellen Zelle in jeder Schleife auch der Variablen $key zugewiesen wird.
Seit PHP 5 ist es auch möglich, Objekte zu durchlaufen.
Hinweis: Wenn foreach mit der Ausführung beginnt, zeigt der Zeiger im Array automatisch auf die erste Einheit. Dies bedeutet, dass vor der foreach-Schleife kein Aufruf von reset() erforderlich ist.
Hinweis: Sofern nicht auf das Array verwiesen wird, bearbeitet foreach eine Kopie des angegebenen Arrays, nicht das Array selbst. foreach hat einige Nebenwirkungen auf Array-Zeiger. Verlassen Sie sich während oder nach einer foreach-Schleife nicht auf den Wert eines Array-Zeigers, es sei denn, dieser wird zurückgesetzt.
Seit PHP 5 ist es einfach, die Elemente eines Arrays zu ändern, indem man & vor $value hinzufügt. Diese Methode weist einen Wert per Referenz zu, anstatt ihn zu kopieren.
<?php $arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; } // $arr is now array(2, 4, 6, 8) ?>
Diese Methode ist nur verfügbar, wenn auf das zu durchlaufende Array verwiesen werden kann (z. B. wenn es sich um eine Variable handelt).
<?php foreach (array(1, 2, 3, 4) as &$value) { $value = $value * 2; } ?>
Weitere Funktionen in PHP – ausführliche Erklärung der Verwendung von foreach() Für verwandte Artikel beachten Sie bitte die chinesische PHP-Website!