⊗ppPmCdBNM 100 of 447 menu

Опционалност break-а у PHP

Наредба break је опционална. Међутим, без ње, понашање case блокова биће неочекивано. Хајде да погледамо на примеру. Претпоставимо да имамо следећи код:

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

Уклонимо из њега све break наредбе, а у променљиву $num за почетак упишимо број 3.

За сада ће све радити онако како је и радило:

<?php $num = 3; // нека овде буде број 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Након покретања код ће исписати 3 - све је у реду ?>

Хајде сада да у променљиву $num упишемо број 2. У овом случају ће се, очекивано, извршити case 2, а затим неочекивано и case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Након покретања код ће исписати 2, а затим 3 ?>

Ако у променљиву $num упишемо број 1, извршиће се све case конструкције:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Након покретања код ће исписати 1, затим 2, а затим 3 ?>

То значи да се, при одсуству break, након извршења жељеног case, изврше и сви case испод њега. Понекад се ова особина користи при решавању задатака.

У следећем примеру, ако променљива $num има вредност 1 или 2, онда ће се у променљиву $res уписати 'a'. Ако променљива $num има вредност 3, онда ће се у променљиву $res уписати 'b':

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

Горе сам написао да се понекад ова особина користи, али генерално не препоручујем да се користи, јер код постаје мање разумиљив.

Разумљивије је решити такав задатак помоћу if наредби:

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>
Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј