Schleifen in PHP. PHP-Foreach-Schleife: Zwei Möglichkeiten, sie zu verwenden. PHP-Doppelzählung in einer Schleife

Es ist unwahrscheinlich, dass Sie ein seriöses Skript in PHP schreiben können, ohne Schleifen zu verwenden. Was ist ein Zyklus? Hierbei handelt es sich um eine spezielle Art von Kontrollstruktur, die es Ihnen ermöglicht, denselben Code wiederholt (und sogar endlos) auszuführen. Die folgenden Schleifen werden in PHP unterstützt:

Die ersten drei Schleifen sind diejenigen, die Sie höchstwahrscheinlich in den meisten Programmiersprachen sehen werden. Schleifen können je nach Bedingungen unterbrochen oder fortgesetzt werden (mit der nächsten Iteration fortfahren, ohne den Schleifenkörper auszuführen). Schauen wir uns die einzelnen Zyklen genauer an.

for-Schleife

Die Syntax der for-Schleife ist wie folgt.

For(initialization; condition; commands_after_iteration) (loop_body; )

Der Initialisierungsblock initialisiert immer den Zähler sowie andere Variablen (falls erforderlich). Der Bedingungsblock gibt an, an welcher Stelle die Schleife aufhören soll. Im Befehlsblock, der nach jeder Iteration der Schleife ausgeführt wird, ändert sich normalerweise der Wert des Zählers sowie anderer Variablen (falls erforderlich).

// Wertearray $array = array("Apfel", "Kartoffel", "Wassermelone", "Blume", "Wasser", "Merkur", "Sauerstoff", "Weizen", "Russland", "Moskau ", " Dusche"); // Die Schleifenbedingung klingt wie folgt: Bis der Zähler einen Wert erreicht, der der Anzahl // der Array-Elemente entspricht, wird der Schleifenkörper ausgeführt for($i = 0; $i< count($array); $i++) { print "
".($i + 1)". ".$array[$i].."; ) /* Das Ergebnis des Zyklus wird wie folgt sein: 1. Apfel. 2. Kartoffel. 3. Wassermelone. 4. Blume. 5. Wasser. 6. Quecksilber. 7 . Sauerstoff. 8. Weizen 9. Russland 10. Moskau 11. Regen */

Da der Zähler $i bei Null begann, haben wir bei jeder Iteration eins zu seinem Wert hinzugefügt, um die Liste vertrauter zu machen. Nach jeder Iteration wurde der Zählerwert um eins erhöht, und als er 11 erreichte, stoppte die Schleife. Schauen wir uns nun die do-while-Schleife an.

do-while-Schleife

Der Unterschied zur do-while-Schleife besteht darin, dass sie mit einer Nachbedingung arbeitet. Das bedeutet, dass der im Schleifenkörper enthaltene Code mindestens einmal ausgeführt wird. Die Schleifensyntax lautet:

Do (loop_body; ) while(condition);

Diese Schleife wird in der Webprogrammierung recht selten verwendet, Sie benötigen sie jedoch möglicherweise in Ihren Skripten.

// Bereits bekanntes Array $array = array("Apfel", "Kartoffel", "Wassermelone", "Blume", "Wasser", "Merkur", "Sauerstoff", "Weizen", "Russland", "Moskau " , "Regen"); // Schleife starten $i = 1; tun(drucken)
".$i.". ".$array[($i - 1)]."; ) while($i++< count($array)); /* Результат работы цикла будет таким: 1. Яблоко. 2. Картошка. 3. Арбуз. 4. Цветок. 5. Вода. 6. Ртуть. 7. Кислород. 8. Пшеница. 9. Россия. 10. Москва. 11. Ливень. */

Beachten Sie den Unterschied zwischen dem, was wir in dieser Schleife und der for-Schleife ausgeben. Da der Code im Rumpf der do-while-Schleife mindestens einmal ausgeführt wird, wurde der Anfangswert des Zählers auf Null gesetzt. So funktioniert eine Schleife: Code wird ausgeführt und dann wird eine Bedingung getestet. Bei der ersten Iteration hatte der Zähler den Wert 1. Nach der Iteration stellte sich heraus, dass eins weniger als 11 (die Anzahl der Elemente) betrug. Bei der letzten Iteration hatte der Zähler einen Wert von 11, und dieser ist keineswegs kleiner als 11. Die Schleife wurde gestoppt. Die while-Schleife ist der do-while sehr ähnlich.

while-Schleife

Die while-Schleife ist vorbedingt. Es wird nur ausgeführt, wenn seine Bedingung wahr ist. Das heißt, die while-Schleife wird möglicherweise überhaupt nicht ausgeführt. Seine Syntax ist:

While(condition) (loop_body; )

Neben der for-Schleife wird auch die while-Schleife sehr häufig verwendet.

$array = array("Apfel", "Kartoffel", "Wassermelone", "Blume", "Wasser", "Merkur", "Sauerstoff", "Weizen", "Russland", "Moskau", "Regen"); $i = 1; while($i++<= count($array)) { print "
".$i.". ".$array[($i - 1)]."; ) /* Das Ergebnis der Schleife wird wie folgt sein: 1. Apfel. 2. Kartoffel. 3. Wassermelone. 4. Blume. 5. Wasser. 6. Quecksilber. 7. Sauerstoff 8. Weizen 9. Russland 10. Moskau 11. Regen */

Die while-Schleife ist die einfachste und verständlichste für Anfängerentwickler.

foreach-Schleife

Die foreach-Schleife ist nicht wie alle oben genannten. Es erschien in PHP4 und ist für die Iteration über Arrays konzipiert. Der Entwickler muss hierfür nichts erfinden. Alles ist einfach und unkompliziert:

/** * Die foreach-Schleife sollte als „for every of“ verstanden werden. * Das von der Schleife verarbeitete Array wird an eine Variable übergeben, auf die * nur innerhalb des Schleifenkörpers zugegriffen werden kann. Bei Bedarf können Sie auch auf *-Array-Schlüssel zugreifen. */ foreach(array as array_element) (loop_body; ) foreach(array as array_key => array_element) (loop_body; )

Das Prinzip der foreach-Schleife unterscheidet sich völlig von den for-, while- und do-while-Schleifen. Daher ist es für unerfahrene Entwickler ziemlich schwierig zu verstehen, was genau damit gemacht werden kann (und sogar sollte).

// Lasst uns das Array ändern, das wir bereits kennen. Machen wir es assoziativ. $array = array("Apple" => "Frucht", "Kartoffel" => "Gemüse", "Wassermelone" => "Beere", "Blume" => "Pflanze", "Wasser" => "Flüssigkeit", „Merkur“ => „Metall“, „Sauerstoff“ => „Gas“, „Weizen“ => „Brot“, „Russland“ => „unser Mutterland“, „Moskau“ => „die Hauptstadt unseres Mutterlandes“, „Regen“ => „popados“); $i = 1; // Wir können dies tun foreach($array as $v) ( print "
".$i.". ".$v."."; $i++; ) /* Wir erhalten dieses unerwartete Ergebnis: 1. Obst. 2. Gemüse. 3. Beere. 4. Pflanze. 5. Flüssigkeit. 6. Metall. 7. Gas. 8 . Brot. 9. unser Mutterland. 10. Hauptstadt unseres Mutterlandes. 11. Popados. */ // Jetzt machen wir es anders foreach($array as $k => $v) ( print "
".$i.". „.$k.“ ist „.$v.“; $i++; ) /* Das Ergebnis sieht nun so aus: 1. Ein Apfel ist eine Frucht. 2. Eine Kartoffel ist ein Gemüse. 3. Eine Wassermelone ist eine Beere. 4. Eine Blume ist eine Pflanze. 5. Wasser ist eine Flüssigkeit. 6. Quecksilber ist ein Metall. 7. Sauerstoff ist ein Gas. 8. Weizen ist Brot. 9. Russland ist unser Mutterland. 10. Moskau ist die Hauptstadt unseres Mutterlandes. 11. Regen ist ein Hit. .*/

Verstehen Sie, wie dieser Zyklus funktioniert? Wenn nicht, können Sie in den Kommentaren zum Material eine Frage stellen.

Sie können Konstrukte in jeder Schleife verwenden brechen oder weitermachen. Manchmal macht es keinen Sinn, die Schleife fortzusetzen, oder Sie müssen mit der nächsten Iteration fortfahren.

$array = array("Apple" => "Frucht", "Kartoffel" => "Gemüse", "Wassermelone" => "Beere", "Blume" => "Pflanze", "Wasser" => "Flüssigkeit", „Merkur“ => „Metall“, „Sauerstoff“ => „Gas“, „Weizen“ => „Brot“, „Russland“ => „unser Mutterland“, „Moskau“ => „die Hauptstadt unseres Mutterlandes“, „Regen“ => „popados“); $i = 1; // Ein Beispiel für die Funktionsweise einer Schleife mit dem Konstrukt continue foreach($array as $k => $v) ( if($k != "Oxygen") continue; print "
".$i.". „.$k.“ ist „.$v.“; $i++; ) /* Das Ergebnis sieht so aus: 1. Sauerstoff ist ein Gas. */ $i = 1; // Ein Beispiel für die Funktionsweise einer Schleife mit der Konstruktion break foreach($ Array als $k = > $v) ( if($k == "Oxygen") break; print "
".$i.". „.$k.“ ist „.$v.“; $i++; ) /* Das Ergebnis ist 1. Ein Apfel ist eine Frucht. 2. Eine Kartoffel ist ein Gemüse. 3. Eine Wassermelone ist eine Beere. 4. Eine Blume ist eine Pflanze. 5. Wasser ist eine Flüssigkeit. 6. Quecksilber ist ein Metall. */

Die Notiz: Die adaptive Version der Website ist aktiviert, die sich automatisch an die geringe Größe Ihres Browsers anpasst und einige Details der Website ausblendet, um das Lesen zu erleichtern. Genieße das Zusehen!

Hallo liebe Leser und Stammabonnenten! Es ist Zeit, die Artikelreihe über PHP fortzusetzen und heute werden wir uns mit einer so grundlegenden und gleichzeitig sehr wichtigen Sache wie Schleifen befassen. Was müssen Sie als Erstes über Zyklen wissen? Und die Tatsache, dass sie überall verwendet werden und Vorlagen für Joomla, VirtueMart, Wordpress, OpenCart und jedes andere CMS keine Ausnahme bilden.

Was ist ein Zyklus? Zyklus ist die wiederholte Wiederholung desselben Codeabschnitts. Wie viele Wiederholungen durchgeführt werden müssen, hängt vom Zyklenzähler ab, den wir selbst erstellen und steuern können. Dies ist beispielsweise sehr praktisch, wenn wir Produkte in einer Online-Shop-Kategorie anzeigen, Blog-Beiträge anzeigen oder Kommentare zu einem Artikel oder Produkt anzeigen müssen; alle Menüs in CMS (Website-Engines) werden ebenfalls mithilfe von Zyklen erstellt. Im Allgemeinen werden Schleifen sehr häufig verwendet.

Bevor Sie jedoch zu den Schleifen selbst übergehen, müssen Sie zunächst so etwas wie Operatoren verstehen Zuwachs Und dekrementieren.

Der Operator ++ (Inkrement) erhöht den Wert einer Variablen um eins, während der Operator -- (Dekrement) den Wert einer Variablen um eins verringert. Sie lassen sich sehr praktisch in Schleifen als Zähler und beim Programmieren im Allgemeinen verwenden. Es gibt auch PRE-Inkrement/Dekrement und POST-Inkrement/Dekrement:

PRE inkrementieren/dekrementieren ++$a Erhöht $a um eins und gibt den Wert von $a zurück. --$a Dekrementiert $a um eins und gibt den Wert von $a zurück. POST inkrementieren/dekrementieren $a++ Gibt den Wert von $a zurück und erhöht dann $a um eins. $a-- Gibt den Wert von $a zurück und verringert dann $a um eins.

Zum Beispiel:

$a = 1; echo "Ausgabenummer: " . $a++; // Die Zahl ausgeben: 1 echo "Die Zahl ausgeben: " . $a; // Die Zahl ausgeben: 2 echo "Die Zahl ausgeben: $a"; $a += 1; // dasselbe wie in der ersten Zeile$a = 1; echo "Ausgabenummer: " . +$a; // Nummer ausgeben: 2 echo "Nummer ausgeben: " . $a; // Zahl ausgeben: 2 $a += 1; echo „Ausgabenummer: $a“; // das Gleiche wie in der ersten Zeile dieses Blocks

for-Schleife

for (Teil A; Teil B; Teil C)( // Beliebiger Code, beliebig viele Zeilen; )

Die for-Schleife besteht aus 3 Teilen und dem Körper selbst. Teil A Es macht einfach das, was es sagt, normalerweise erstellt es in 90 % der Fälle einen Schleifenzähler. Teil B- das ist uns, grob gesagt, bereits bekannt Wenn, das heißt, auf Wahrheit (wahr?) prüfen. Das heißt, wenn die Bedingung wahr ist WAHR, dann geht PHP in die Schleife und führt sie weiter aus. Teil C- Wie in Teil A führen wir in der Regel auch in Teil C eine Art Transformation mit dem Zähler durch. Zum Beispiel:

"; ) echo "DIE SCHLEIFE VERLASSEN und durch den Code weitergegangen..."; ?>

Nun zum Algorithmus der for-Schleife. Das erste, was PHP sieht, ist, dass es zu Teil A geht und ihn nur einmal ausführt (siehe Abbildung unten). Als nächstes geht PHP zu Teil B und prüft, ob es wahr oder falsch ist. Wenn „true“, dann führt es den Hauptteil der Schleife aus und geht erst danach zu Teil C über. Danach geht PHP wieder zu Teil B und prüft, ob es dort noch „true“ ist oder nicht. Wenn nicht, endet die Schleife. Wenn ja, wird sie fortgesetzt, bis Teil B false enthält.

Das Ergebnis des vorherigen Beispiels:

While-Schleife

while (part B)( // Beliebiger Code, beliebig viele Zeilen; )

Wie Sie sehen, gibt es keinen Teil A und keinen Teil C, von der for-Schleife bleibt nur noch eine Bedingung übrig, nämlich Teil B. Wenn wir einen Zähler verwenden müssen, müssen wir ihn unter anderem in die while-Schleife einfügen Der Rest des Codes wird Teil C sein. Ein create-Zähler wird vor dem Start des while-Konstrukts benötigt:

Teil A; while (part B)( // Beliebiger Code, beliebig viele Zeilen; Teil C; )

Lassen Sie uns die vorherige for-Schleife in eine while-Schleife umwandeln:

"; $i++; ) echo "DIE SCHLEIFE VERLASSEN und durch den Code weitergegangen..."; ?>

Das Ergebnis wird genau das gleiche sein. Was Sie verwenden sollten: Eine for-Schleife oder eine while-Schleife ist Geschmackssache. Sehen Sie, was für Sie bequemer und logischer ist. Es gibt keinen Unterschied.

Machen Sie... while-Schleife

Bei allen Zyklustypen seltener. Im Wesentlichen handelt es sich dabei um eine umgekehrte Zeit. Der Trick besteht darin, dass PHP auf jeden Fall mindestens einmal (beim ersten Mal) in den Rumpf der do... while-Schleife eindringt, da in dieser Schleife am Ende eine Bedingung steht:

Teil A; do( // Beliebiger Code, beliebig viele Zeilen; Teil C; )while(Teil B);

"; $i++; )while($i< 8); echo "ВЫШЛИ ИЗ ЦИКЛА и пошли дальше по коду..."; ?>

Es ist wichtig zu verstehen: In allen drei Arten von Zyklen gibt es keine obligatorischen Teile.

Ein Beispiel für eine for-Schleife ohne Teil A und Teil C:

For(;$i > 8;)( // Ihr Code )

Ein Beispiel für eine for-Schleife ohne alle drei Teile:

For(;;)( // klassische Endlosschleife)

Das heißt, alle Semikolons bleiben weiterhin in der for-Schleife, das ist die Syntax!

Endlosschleifen

Eine Endlosschleife ist ein Entwicklerfehler, bei dem die Seite nie bis zum Ende geladen werden kann, da die Schleifenbedingung (Teil B) immer wahr ist. Zum Beispiel:

"; $i++; )while($i != 0); echo "DIE SCHLEIFE VERLASSEN und durch den Code weitergegangen..."; ?>

Ergebnis:

Ich habe nur einen Teil davon gezeigt, weil nicht alles auf den Bildschirm passt. Auf diese Weise leiden Ihr Browser und der Server Ihrer Website endlos, bis der Browser nach 30 Sekunden abstürzt. Und das alles, weil im obigen Beispiel die Variable $i niemals gleich Null sein wird, sondern zunächst gleich 1 und konstant ist zunehmend.

Das heißt, der Entwickler war unaufmerksam, als er auf eine solche Bedingung kam.

Zyklusmanagement

Betreiberpause. Es gibt Situationen, in denen wir die Schleife nicht benötigen, um alle Iterationen (Wiederholungen) abzuspielen. Zum Beispiel möchten wir es zu einem bestimmten Zeitpunkt unterbrechen und die Ausführung mit dem folgenden Code fortsetzen:

"; if ($i === 5) break; // Schleife verlassen, wenn $i gleich 5 ist $i++; ) echo "Ich kann nur bis 5 zählen:("; ?>

Ergebnis:

Im obigen Beispiel verließ PHP die Schleife, sobald wir fünf erreicht hatten, sonst hätte es bis 7 gezählt.

Betreiber fortfahren unterbricht ebenfalls die Ausführung der Schleife, aber im Gegensatz zu break verlässt continue die Schleife nicht, sondern bringt den PHP-Interpreter zurück in die Bedingung (zu Teil B). Beispiel:

"; ) echo „Habe ich etwas verpasst?"; ?>

Ergebnis:

Wir haben die Nummer 5 nur verpasst, weil PHP nicht zum Echo kam.

Eine Schleife kann innerhalb einer Schleife verschachtelt sein. In diesem Fall gelten die Anweisungen continue und break nur für eine Schleife, nämlich die, in der sie sich befinden. Das heißt, mit anderen Worten, sie werden auf eine Ebene übertragen und nicht auf alle. Beispiel:

Aber wir können selbst entscheiden, durch wie viele Level wir springen müssen:

"; $i++; $i=1; $k=1; while ($k< 8) { echo "Итерация $k номер ". $k . "
"; if ($k === 5) break 2; $k++; ) ) ?>

Ergebnis:

Natürlich können wir keine größere Zahl festlegen als die Anzahl der verschachtelten Schleifen, die wir haben.

foreach-Schleife

Als letztes in der Reihenfolge, aber am wichtigsten ist die foreach-Schleife. Gebraucht nur für Aufzählung und Objekte (es ist noch zu früh, sie zu lehren). Beispielsyntax:

"; } ?>

Ergebnis:

Dabei handelte es sich um ein kurzes foreach-Konstrukt, es gibt aber auch eine erweiterte Version, die neben den Werten der Array-Zellen auch die Namen der Zellen (Schlüssel) anzeigt:

$value) ( ​​​​echo „Im Abschnitt " . $key . " Es gibt einen Artikel mit dem Titel: ". $value ."
"; } ?>

Ergebnis:

Ich mache Sie darauf aufmerksam, dass wir die Variablen beliebig nennen können, sogar $key und $value, sogar $xxx und $yyy.

Wenn es sich um ein Array handelt, verwenden wir nur die foreach-Schleife und keine anderen. Es ist dieser Zyklus, der in VirtueMart und tatsächlich überall verwendet wird.

Letzte Aktualisierung: 01.11.2015

Um wiederholbare Aktionen in PHP auszuführen, werden wie in anderen Programmiersprachen auch Schleifen verwendet. PHP verfügt über die folgenden Arten von Schleifen:

for-Schleife

Die for-Schleife hat die folgende formale Definition:

For ([Zähler initialisieren]; [Bedingung]; [Zähler ändern]) ( // Aktionen )

Betrachten Sie die Standard-for-Schleife:

"; } ?>

Der erste Teil der Schleifendeklaration – $i = 1 – erstellt und initialisiert den Zähler – die Variable $i. Und bevor die Schleife ausgeführt wird, ist ihr Wert 1. Im Wesentlichen ist dies dasselbe wie die Deklaration einer Variablen.

Der zweite Teil ist die Bedingung, unter der die Schleife ausgeführt wird. In diesem Fall wird die Schleife ausgeführt, bis $i 10 erreicht.

Der dritte Teil besteht darin, den Zähler um eins zu erhöhen. Auch hier gilt: Wir müssen nicht unbedingt um eins erhöhen. Sie können Folgendes verringern: $i--.

Infolgedessen wird der Schleifenblock neunmal ausgeführt, bis der Wert von $i 10 beträgt. Und jedes Mal erhöht sich dieser Wert um 1. Jede einzelne Wiederholung der Schleife wird als Iteration bezeichnet. In diesem Fall gibt es also 9 Iterationen.

while-Schleife

Die while-Schleife testet die Wahrheit einer Bedingung. Wenn die Bedingung wahr ist, wird der Block mit Schleifenausdrücken ausgeführt:

"; $counter++; ) ?>

Wenn es im while-Block nur eine Anweisung gibt, können die geschweiften Klammern des Blocks weggelassen werden:

"; ?>

do..while-Schleife

Die do..while-Schleife ähnelt der while-Schleife, nur dass jetzt der Schleifenblock ausgeführt wird und erst dann die Bedingung getestet wird. Das heißt, selbst wenn die Bedingung falsch ist, wird der Schleifenblock mindestens einmal ausgeführt:

"; $counter++; ) while($counter<10) ?>

Anweisungen fortsetzen und unterbrechen

Manchmal kommt es vor, dass Sie eine Schleife verlassen müssen, ohne auf deren Abschluss zu warten. In diesem Fall können wir die break-Anweisung verwenden:

80) ( break; ) echo „Das Quadrat von $i ist gleich $result
"; } ?>

Und wenn sich plötzlich herausstellt, dass das Ergebnis der Operation mehr als 80 beträgt, wird die Schleife beendet.

Der Continue-Operator wird auch zur Steuerung von Schleifen verwendet. Es geht zur nächsten Iteration der Schleife über:

"; } ?>

Wenn beim Ausführen des Programms der Wert von $i gleich 5 wird, erfolgt der Übergang zur nächsten Iteration und alle anderen Ausdrücke, die auf den Fortsetzungsoperator folgen, werden nicht ausgeführt.

Die for-Schleife ist eine der am häufigsten verwendeten Schleifen in jeder Programmiersprache. In diesem Artikel werfen wir einen genaueren Blick auf die PHP for-Schleife.

For-Schleifenoperator in PHP

Eine for-Schleife in PHP führt einen Codeblock basierend auf einem Zähler eine bestimmte Anzahl von Malen aus. In diesem Fall wird die Häufigkeit, mit der ein Codeblock ausgeführt werden muss, im Voraus festgelegt, bevor er in den Schleifenkörper eintritt.

for ist einer der komplexesten Schleifentypen. In PHP verhält sich eine for-Schleife ähnlich wie in C. Nachfolgend finden Sie die Syntaxstruktur:

for(Ausdruck1;Ausdruck2;Ausdruck3)-Anweisung;

In der obigen Beschreibung Stichwort for gibt eine Schleife an. Die Klammern definieren die Ausdrücke und dann die auszuführende Anweisung.

Wie funktioniert eine for-Schleife in PHP?

Um zu verstehen, wie die for-Schleife funktioniert, müssen wir diese drei Ausdrücke verstehen. Ausdruck: Ausdruck1 ist der erste, der nur einmal ausgeführt wird, bevor er in die Schleife eintritt. Es wird bedingungslos durchgeführt. Dies bedeutet, dass der Ausdruck das erste Mal ausgeführt wird, bevor er in die Schleife eintritt.

Ausdruck1 wird als Initialisierungsausdruck bezeichnet, da er zum Initialisieren des Zählers verwendet wird, der in Ausdruck2 und Ausdruck3 verwendet wird.

Ausdruck2 ( Zustandsprüfung) wird überprüft, um festzustellen, ob die Bedingung die Ausführung der Anweisung zulässt oder nicht. Beim ersten Mal wird es nach expression1 ausgeführt, dann vor Eintritt in die Schleife.

Normalerweise enthält expression2 eine bedingte Anweisung, um zu testen, ob die Bedingung true oder false zurückgibt. Wenn die Bedingung wahr ist, wird die in der Schleife geschriebene Anweisung ausgeführt.

Ausdruck3 wird am Ende jeder Iteration nach der Schleifenanweisung ausgeführt. Normalerweise nennen Programmierer es einen Inkrementausdruck. Sie verwenden diesen Ausdruck, um den Wert eines Zählers zu erhöhen, der in Ausdruck1 initialisiert und in Ausdruck2 ausgewertet wurde.

Alle drei Ausdrücke sind optional. Sie können auch eine PHP-Schleife wie folgt erstellen:

for(;;)-Anweisung;

for(;Ausdruck2;Ausdruck3)-Anweisung;

Wenn eine for-Schleife mehrere Zeilen enthält, verwenden Sie geschweifte Klammern wie unten:

for(Ausdruck1;Ausdruck2;Ausdruck3)( Aussage1; Aussage2; Aussage3; )

For-Schleifen-Flussdiagramm

Im ersten Schritt wird expression1 ausgeführt. Wenn Sie sich das Blockdiagramm genau ansehen, werden Sie feststellen, dass es für Ausdruck1 keine Bedingung gibt. Ausdruck1 ähnelt dem Ablauf des ausgeführten Programms.

Im nächsten Schritt wird expression2 unmittelbar nach expression1 ausgeführt. Es prüft, ob die Schleifenbedingung wahr ist. Wenn die Bedingung wahr ist, wird die Schleife weiter ausgeführt, andernfalls verlässt der Thread die Schleife.

Wenn expression2 „true“ zurückgibt, führt der dritte Schritt die in der for-Schleife geschriebene Anweisung aus. Danach wird der dritte Ausdruck expression3 ausgeführt.

Nachdem Ausdruck3 ausgeführt wurde, überprüft der Thread Ausdruck2 erneut und die Schleife wird fortgesetzt, bis Ausdruck2 „false“ zurückgibt.

Ein einfaches Beispiel einer for-Schleife in PHP

Betrachten wir den Fall, dass Sie durch Kommas getrennte Zahlen von 1 bis 10 anzeigen müssen. Unten ist der Code:

for($i=1;$i<=10;$i++) print $i.",";

Oder mit einer geschweiften Klammer:

for($i=1;$i<=10;$i++) { print $i.","; }

Der Ausdruck $i=1 ist expression1 , der bedingungslos ausgeführt wird. Wir verwenden expression1, um die Variable auf $i=1 zu initialisieren.

Ausdruck2 ist der Ausdruck $i:

$i=1; for(;$i<=10;$i++) { print $i.","; }

$i=1; for(;$i<=10;) { print $i.","; $i++; }

Komplexer Ausdruck in einer for-Schleife

Sie können drei Ausdrücke in eine for-Schleife schreiben. Wir können in jedem Ausdruck in einer for-Schleife mehrere Anweisungen schreiben. Operatoren müssen durch Kommas getrennt werden.

Schauen wir uns das Beispiel des vorherigen Codes zum Drucken einer Zahl von 1 bis 10 an. Wenn Sie mehrere Operatoren in einem Ausdruck verwenden, können Sie den folgenden Code schreiben:

for($i=1; $i<=10; print $i . ",", $i++);

Hier ist Ausdruck3 print $i.’,’, $i++ , der zwei Operatoren kombiniert, einer ist print $i. ‘,’ und der zweite ist $ i++ .

Oben sehen Sie ein Beispiel, in dem wir in expression3 mehrere Operatoren verwendet haben. Sie können in jedem Ausdruck aber auch mehrere Operatoren verwenden. Zum Beispiel:

Ebenso können Sie mit dem folgenden Code alle ungeraden Zahlen unter 10 drucken:

Array und for-Schleife in PHP

Sie können eine PHP-for-Schleife verwenden, um ein Array zu durchlaufen. Wir haben zum Beispiel ein Array, das die Namen verschiedener Personen enthält. Wir müssen alle Namen anzeigen:

$names = array("Ankur", "John", "Joy"); $count = count($names); for($counter=0;$counter<$count;$counter++){ print $names[$counter]; }

Sie können auch ein mehrdimensionales Array in einer for-Schleife verwenden:

$names = array(array("id" => 1, "name" => "Ankur"), array("id" => 2, "name" => "Joe"), array("id" => 3, „Name“ => „John“),); $count = count($names); für ($counter = 0; $counter< $count; $counter++) { print "Name".$names[$counter]["name"]." ID".$names[$counter]["id"]."n"; }

Verschachtelte for-Schleife

Es ist möglich, in PHP eine verschachtelte for-Schleife zu verwenden. Beispiel:

$metrix = array(array(1, 2, 3), array(2, 1, 3), array(3, 2, 1),); $count = count($metrix); für ($counter = 0; $counter< $count; $counter++) { $c_count = count($metrix[$counter]); for ($child = 0; $child < $c_count; $child++) { echo $metrix[$counter][$child]; } }

Wir haben ein mehrdimensionales Array und verwenden zwei PHP-for-Schleifen, um die Werte seiner Elemente anzuzeigen.

Wenn Sie eine verschachtelte Schleife verwenden, können Sie den Ausdruck der übergeordneten for-Schleife in der untergeordneten Schleife verwenden. Zum Beispiel:

für ($i = 1; $i<= 5; $i++) { for ($j = 1; $j <= $i; $j++) { echo "*"; } echo "
"; }

Das obige Programm ist eines der beliebtesten Programme zum Drucken des *-Symbols in Form eines rechtwinkligen Dreiecks.

Inkrementieren in einer for-Schleife

In fast jedem der obigen Beispiele haben wir expression3, den letzten Ausdruck, als Inkrementanweisung verwendet. Außerdem haben wir in allen Beispielen oft den Wert um eins erhöht, zum Beispiel $i++ oder $j++ und so weiter. Wir können den Zähler aber entsprechend unseren Anforderungen vergrößern. Um beispielsweise alle ungeraden Zahlen von 1 bis 15 auszugeben, könnten Sie die Schleife mit dem Wert 1 initialisieren und bis 15 iterieren und dabei den Zähler um 2 erhöhen:

for($counter = 1; $counter<=15;$counter=$counter+2){ print $counter.","; }

Die Ausgabe des obigen Codes ist „ 1,3,5,7,9,11,13,15 " Hier erhöhen wir die Zählervariable um +2 mit dem Ausdruck $counter=$counter+2 .

Verlassen der for-Schleife

Mit dem Schlüsselwort break können Sie eine Schleife unter einer bestimmten Bedingung unterbrechen. Es ist nicht Teil einer Schleife und wird verwendet, um die Ausführung von for-, foreach-, while-, do-while- und switch-Anweisungen zu unterbrechen. Sehen wir uns an, wie das Schlüsselwort break eine for-Schleife stoppt.

Ein einfaches Beispiel, in dem wir alle Zahlen in einem Array bis 100 ausgeben:

$series = array(1, 8, 5, 3, 100, 9, 7); for ($i = 0, $count = count($series); $i<= $count; $i++) { if (100 == $series[$i]) { break; } echo $series[$i] . " "; }

Hier unterbrechen wir die Schleife, indem wir prüfen, ob der Wert des Array-Elements gleich 100 ist.

Sie können eine verschachtelte PHP-Schleife auch durch ein Array unterbrechen, indem Sie die Tiefe übergeben, zum Beispiel break 1 , break 2 usw. Siehe das Beispiel unten:

for ($i = 0;; $i++) ( switch ($i) ( case 1: echo „This is one“; break 1; //Dies unterbricht nur die switch-Anweisung case 2: echo „This is two“; break 1 ; // Dadurch wird wieder nur die Switch-Anweisung unterbrochen. case 3: echo „This is three“; break 2; // Dies wird sowohl den Switch als auch die for-Schleife unterbrechen) )

Hier unterbricht break 1 die switch-Anweisung, aber break 2 unterbricht sowohl die aktuelle Anweisung als auch die übergeordnete Anweisung, d. h. sowohl switch als auch for .

Verwendung von continue in einer for-Schleife

Im vorherigen Abschnitt haben wir gelernt, wie man aus einer Schleife ausbricht. Was aber, wenn Sie eine Iteration der Schleife überspringen und zur Schleife zurückkehren müssen? PHP verfügt hierfür über das Schlüsselwort continue.

Erinnern wir uns an ein Beispiel für die Ausgabe ungerader Zahlen. Wir haben lediglich die Schleife bei 1 gestartet, den Zähler um 2 erhöht und das Ergebnis ausgegeben. Lassen Sie uns dieses Beispiel mit continue implementieren:

für ($i = 0; $i< 20; $i++) { if ($i % 2 == 0) { continue; } echo $i . ","; }

Im obigen Beispiel überprüfen wir den Ausdruck $i%2 == 0 und wenn er wahr ist, überspringen wir mit dem Schlüsselwort continue den Rest der Schleife und kehren zu Ausdruck3 ($i++) und dann zu Ausdruck2 ($i) zurück:

Manchmal müssen Sie Daten mithilfe von PHP aus einer Datenbanktabelle in ein Array übertragen.

Die PHP-foreach-Schleife kann folgendermaßen verwendet werden:

foreach($array_name as $value)( //auszuführender Code)

foreach($array_name as $key =>$value)( // //Code, der ausgeführt werden soll)

Beispiel für die Verwendung einer foreach-Schleife mit einem numerischen Array

In diesem Beispiel erstellen wir ein Array aus fünf Elementen mit numerischen Werten. Anschließend wird die PHP-foreach-Schleife verwendet, um dieses Array zu durchlaufen. Innerhalb der foreach-Schleife haben wir echo verwendet, um die Array-Werte auszugeben:

Demo und Code ansehen

Beispiel mit Array-Schlüsseln und -Werten

Dieses Beispiel beschreibt eine andere Möglichkeit, die PHP-foreach-Schleife zu verwenden. Dazu haben wir ein assoziatives Array aus drei Elementen erstellt. Es enthält die Namen der Mitarbeiter ( als Schlüssel) und die Höhe des Lohns ( als Werte):

Demo und Code ansehen

Ein Beispiel für die Änderung des Werts eines Array-Elements in einer foreach-Schleife

Sie können PHP array foreach auch verwenden, um die Werte von Array-Elementen zu ändern. Dies geschieht durch die Verwendung von „&“ vor „$“ für die Wertvariable. Zum Beispiel:

&$value_of_element

Der Wert wird geändert. Betrachten Sie zur Verdeutlichung das folgende Beispiel.

In diesem Beispiel haben wir ein numerisches Array mit fünf Elementen erstellt. Danach haben wir eine foreach-Schleife verwendet, um die Werte der Elemente anzuzeigen.

Dann haben wir eine weitere foreach-Schleife erstellt, in der „&“ vor $value_of_element hinzugefügt wird. Innerhalb der geschweiften Klammern weisen wir den Elementen des Arrays neue Werte zu.

Um den Unterschied vor und nach der Zuweisung neuer Werte zu sehen, wird das Array mit der Funktion print_r() angezeigt.

Demo und Code ansehen

Wofür wird die PHP-foreach-Schleife verwendet?

Die PHP-foreach-Schleife wird verwendet, um mit einem Array zu arbeiten. Es iteriert über jedes seiner Elemente.

Sie können auch eine for-Schleife verwenden, um mit Arrays zu arbeiten. Verwenden Sie beispielsweise die Längeneigenschaft, um die Länge eines Arrays abzurufen, und wenden Sie sie dann als Max-Operator an. Aber foreach macht es einfacher, da es für die Arbeit mit Arrays konzipiert ist.

Wenn Sie mit MySQL arbeiten, ist dieser Zyklus dafür umso besser geeignet. Sie können beispielsweise mehrere Zeilen aus einer Datenbanktabelle auswählen und an ein Array übergeben. Anschließend durchlaufen Sie mithilfe einer foreach-Schleife alle Elemente des Arrays und führen eine Aktion aus.

Beachten Sie, dass Sie eine foreach-Schleife mit einem Array oder nur einem Objekt verwenden können.

Verwendung einer foreach-Schleife

Es gibt zwei Möglichkeiten, die PHP-foreach-Schleife in PHP zu verwenden. Beide werden im Folgenden beschrieben.

  • Die Syntax für die erste Methode lautet:

foreach($array_name as $value)( echo $value )

In diesem Fall müssen Sie den Namen des Arrays und dann die Variable $value angeben.

Bei jeder Iteration wird der Wert des aktuellen Elements der Variablen $value zugewiesen. Nach Abschluss der Iteration wird der Variablen der Wert des nächsten Elements zugewiesen. Und so weiter, bis alle Elemente des Arrays iteriert wurden.

  • Syntax der zweiten Methode ( PHP foreach als Schlüsselwert):

Dies eignet sich für assoziative Arrays, die Schlüssel/Wert-Paare verwenden.

Während jeder Iteration wird der Wert des aktuellen Elements der Variablen $value_of_element zugewiesen. Darüber hinaus wird der Elementschlüssel der Variablen $key_of_element zugewiesen.

Wenn Sie mit numerischen Arrays arbeiten, können Sie die erste Methode verwenden, die keine Elementschlüssel erfordert.

Diese Veröffentlichung ist eine Übersetzung des Artikels „ PHP foreach-Schleife 2 Möglichkeiten, sie zu verwenden", erstellt vom freundlichen Projektteam