⊗ppPmLpFl 124 of 447 menu

Arbeit mit Flags in PHP

Jetzt lernen wir, mit Flags zu arbeiten. Ein Flag ist eine spezielle Variable, die nur zwei Werte annehmen kann: true und false. Mit Flags kann man Aufgaben lösen, die die Abwesenheit von etwas prüfen: man kann zum Beispiel prüfen, dass in einem Array kein Element mit einem bestimmten Wert vorhanden ist. Lasst uns beginnen.

Lasst uns die folgende Aufgabe lösen: gegeben ist ein Array mit Zahlen, es soll geprüft werden, ob darin ein Element mit dem Wert 3 vorhanden ist oder nicht. Wenn ja, geben wir '+++' aus, wenn nicht - geben wir '---' aus.

Zuerst versuchen wir, '+++' auszugeben. Dazu durchlaufen wir alle Elemente unseres Arrays und fragen mit einer if-Bedingung ab - ist das aktuelle Element gleich dem Wert 3? Wenn ja, geben wir '+++' aus:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; } } ?>

Aber unsere Lösung ist nicht sehr gut: denn wenn im Array nicht nur ein Wert 3 ist, sondern mehrere, dann wird '+++' mehrmals ausgegeben. Lasst uns unser Array ändern (wir machen zwei Elemente mit dem Wert 3) und uns davon überzeugen:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // gibt mehrmals aus } } ?>

Wir beheben das Problem: wir beenden die Schleife mit break, sobald das Element gefunden wurde:

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; break; // beendet die Schleife } } ?>

Lasst uns nun versuchen, es so zu machen, dass, wenn im Array überhaupt keine Elemente mit dem Wert 3 vorhanden sind, '---' ausgegeben wird. Eine verbreitete Fehlannahme wäre, else zu unserer if-Bedingung hinzuzufügen - in diesem Fall würde '---' für alle Elemente ausgegeben werden, die nicht 3 sind:

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // gibt beim Element 3 aus } else { echo '---'; // gibt bei den Elementen 1, 2, 4, 5 aus } } ?>

Zusammengefasst, die Idee, else hinzuzufügen - ist eine schlechte Idee, sie funktioniert nicht. Um Aufgaben dieses Typs zu lösen (solche Aufgaben kommen häufig vor) verwendet man sogenannte Flags.

Wie bereits oben erwähnt, ist ein Flag eine Variable, die zwei Werte annehmen kann: true oder false.

Also, lasst uns eine Variable flag machen mit folgender Bedeutung: wenn sie gleich true ist, dann gibt es im Array ein Element 3, und wenn false, dann gibt es ein solches Element nicht.

Anfangs setzen wir die Variable flag auf den Wert false - das heißt, wir gehen davon aus, dass das Element 3 im Array nicht vorhanden ist:

$arr = [1, 2, 3, 4, 5]; $flag = false; // wir gehen davon aus, dass das Element 3 nicht im Array ist

Dann starten wir eine Schleife mit einer if-Bedingung, so wie wir es schon früher gemacht haben. Wenn die Schleife feststellt, dass im Array ein Element 3 vorhanden ist - dann setzen wir die Variable flag auf den Wert true und verlassen die Schleife mit break:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // wir gehen davon aus, dass das Element 3 nicht im Array ist foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // Element ist vorhanden - wir definieren die Variable $flag neu break; // wir verlassen die Schleife } } ?>

Die Antwort auf die Frage, ob im Array 3 enthalten ist oder nicht, können wir erst nach der Schleife geben. Und diese Antwort haben wir bereits: nach der Schleife kann die Variable flag false geblieben sein oder sie kann ihren Wert auf true geändert haben, wenn die Schleife im Array 3 gefunden hat:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // hier ist die Variable $flag gleich true oder false ?>

Jetzt können wir nach der Schleife eine if-Bedingung machen, die die Variable flag betrachtet und '+++' oder '---' auf dem Bildschirm ausgibt:

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } if ($flag === true) { echo '+++'; } else { echo '---'; } ?>

Gegeben ist ein Array:

<?php $arr = ['a', 'b', 'c', 'd', 'e']; ?>

Prüfen Sie, ob in diesem Array das Element 'c' vorhanden ist. Wenn ja - geben Sie '+++' aus, und wenn nicht - geben Sie '---' aus.

Schreiben Sie Code, der prüft, ob eine Zahl eine Primzahl ist oder nicht. Eine Primzahl ist nur durch eins und durch sich selbst teilbar, und nicht durch andere Zahlen.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen