⊗ppPmCdBNM 100 of 447 menu

Optioneel karakter van break in PHP

De opdracht break is optioneel. Zonder deze zal het gedrag van de case blokken echter onverwacht zijn. Laten we kijken naar een voorbeeld. Stel dat we de volgende code hebben:

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

Laten we hier alle break verwijderen, en in de variabele $num om te beginnen het getal 3 zetten.

In eerste instantie zal alles werken zoals voorheen:

<?php $num = 3; // stel hier staat getal 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Na het uitvoeren zal de code 3 weergeven - alles in orde ?>

Laten we nu in de variabele $num het getal 2 zetten. In dit geval zal naar verwachting case 2 uitgevoerd worden, en dan onverwacht ook nog case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Na het uitvoeren zal de code 2, en dan 3 weergeven ?>

Als we in de variabele $num het getal 1 zetten, dan zullen zelfs alle case constructies uitgevoerd worden:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Na het uitvoeren zal de code 1, dan 2, en dan 3 weergeven ?>

Het blijkt dus dat bij afwezigheid van break, na uitvoering van de beoogde case, ook alle case eronder uitgevoerd worden. Soms wordt deze eigenschap gebruikt bij het oplossen van problemen.

In het volgende voorbeeld, als de variabele $num de waarde 1 of 2 heeft, dan wordt in de variabele $res 'a' opgeslagen. Als de variabele $num de waarde 3 heeft, dan wordt in de variabele $res 'b' opgeslagen:

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

Hierboven schreef ik dat deze eigenschap soms gebruikt wordt, maar ik raad het over het algemeen niet aan om hem te gebruiken, omdat de code dan niet erg duidelijk meer is.

Het is duidelijker om zo'n probleem met if-statements op te lossen:

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>
Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren