⊗ppPmCdBNM 100 of 447 menu

Voliteľnosť break v PHP

Príkaz break je voliteľný. Bez neho však bude správanie blokov case neočakávané. Pozrime sa na príklad. Majme takýto kód:

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

Odstránime v ňom všetky break a do premennej $num na začiatok zapíšme číslo 3.

Zatiaľ všetko bude fungovať tak, ako fungovalo:

<?php $num = 3; // nech je tu číslo 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Po spustení kód vypíše 3 - všetko v poriadku ?>

Skúsme teraz do premennej $num zapísať číslo 2. V tomto prípade sa očakávane vykoná case 2 a potom nečakane aj case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Po spustení kód vypíše 2 a potom 3 ?>

Ak do premennej $num zapíšeme číslo 1, vykonajú sa všetky konštrukcie case:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Po spustení kód vypíše 1, potom 2 a potom 3 ?>

To znamená, že pri absencii break sa po vykonaní zamýšľaného case vykonajú aj všetky case pod ním. Niekedy sa táto zvláštnosť využíva pri riešení úloh.

V nasledujúcom príklade, ak má premenná $num hodnotu 1 alebo 2, tak do premennej $res sa zapíše 'a'. Ak má premenná $num hodnotu 3, tak do premennej $res sa zapíše 'b':

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

Hore som napísal, že niekedy sa táto zvláštnosť používa, ale vo všeobecnosti ju neodporúčam používať, pretože kód sa stáva nie veľmi zrejmým.

Zrejmejšie je vyriešiť takúto úlohu pomocou ifov:

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť