⊗ppPmCdBNM 100 of 447 menu

Die Optionalität von break in PHP

Der Befehl break ist optional. Ohne ihn wird das Verhalten der case-Blöcke jedoch unerwartet sein. Schauen wir uns ein Beispiel an. Nehmen wir an, wir haben folgenden Code:

<?php $num = 1; switch ($num) { case 1: echo 1; break; case 2: echo 2; break; case 3: echo 3; break; } ?>

Entfernen wir alle break daraus und schreiben zunächst die Zahl 3 in die Variable $num.

Zunächst wird alles so funktionieren wie zuvor:

<?php $num = 3; // Nehmen wir an, hier steht die Zahl 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Nach dem Start gibt der Code 3 aus - alles in Ordnung ?>

Schreiben wir nun die Zahl 2 in die Variable $num. In diesem Fall wird erwartungsgemäß case 2 ausgeführt, und dann unerwarteterweise auch noch case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Nach dem Start gibt der Code 2 und dann 3 aus ?>

Wenn man die Zahl 1 in die Variable $num schreibt, werden sogar alle case-Konstruktionen ausgeführt:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Nach dem Start gibt der Code 1, dann 2 und dann 3 aus ?>

Das bedeutet, dass bei Fehlen von break nach Ausführung des beabsichtigten case auch alle case-Blöcke unterhalb ausgeführt werden. Manchmal wird diese Besonderheit bei der Lösung von Aufgaben genutzt.

Im folgenden Beispiel wird, wenn die Variable $num den Wert 1 oder 2 hat, in die Variable $res der Wert 'a' geschrieben. Wenn die Variable $num hingegen den Wert 3 hat, wird in die Variable $res der Wert 'b' geschrieben:

<?php $num = 1; switch ($num) { case 1: case 2: $res = 'a'; break; case 3: $res = 'b'; break; } echo $res; ?>

Weiter oben habe ich geschrieben, dass manchmal diese Besonderheit genutzt wird, aber im Grunde empfehle ich nicht, sie zu verwenden, da der Code dann nicht mehr sehr offensichtlich ist.

Es ist naheliegender, eine solche Aufgabe mit If-Anweisungen zu lösen:

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>
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