⊗ppPmCdBNM 100 of 447 menu

Break-i mittekohustuslikkus PHP-s

Käsk break on mittekohustuslik. Ilma selleta on aga plokkide case käitumine ootamatu. Vaatame näite peal. Olgu meil selline kood:

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

Eemaldame sellest kõik break-id, ja muutujasse $num paneme alustuseks numbri 3.

Alguses töötab kõik nagu ennegi:

<?php $num = 3; // olgu siin number 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Pärast käivitamist kood väljastab 3 - kõik korras ?>

Paneme nüüd muutujasse $num numbri 2. Sel juhul käivitatakse ootuspäraselt case 2, ja siis ootamatult ka case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Pärast käivitamist kood väljastab 2 ja siis 3 ?>

Kui muutujasse $num panna number 1, siis käivituvad üldse kõik konstruktsioonid case:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Pärast käivitamist kood väljastab 1, siis 2 ja siis 3 ?>

See tähendab, et break-i puudumisel pärast soovitud case täitmist käivituvad ka kõik case-id allpool seda. Mõnikord kasutatakse seda omadust ülesannete lahendamisel.

Järgmises näites, kui muutuja $num omab väärtust 1 või 2, siis muutujasse $res kirjutatakse 'a'. Kui muutuja $num omab väärtust 3, siis muutujasse $res kirjutatakse 'b':

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

Eespool ma kirjutasin, et mõnikord kasutatakse seda omadust, kuid üldiselt ma ei soovita seda kasutada, sest kood muutub mitte väga ilmseks.

Ilmsem on selline ülesanne lahendada if-ide abil:

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu