⊗ppPmCdBNM 100 of 447 menu

Neobaveznost break u PHP

Naredba break je neobavezna. Međutim, bez nje, ponašanje blokova case biće neočekivano. Pogledajmo na primeru. Neka imamo sledeći kod:

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

Uklonimo iz njega sve break, a u promenljivu $num za početak upišimo broj 3.

Za sada će sve raditi kako je i radilo:

<?php $num = 3; // neka ovde bude broj 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Nakon pokretanja kod će ispisati 3 - sve je u redu ?>

Sada upišimo u promenljivu $num broj 2. U ovom slučaju će se, po očekivanjima, izvršiti case 2, a zatim, neočekivano, i case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Nakon pokretanja kod će ispisati 2, a zatim 3 ?>

Ako u promenljivu $num upišemo broj 1, onda će se izvršiti sve konstrukcije case:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Nakon pokretanja kod će ispisati 1, zatim 2, a zatim 3 ?>

Dakle, ispada da će se, u odsustvu break, nakon izvršenja željenog case, izvršiti i svi case ispod njega. Ponekad se ova osobenost koristi u rešavanju zadataka.

U sledećem primeru, ako promenljiva $num ima vrednost 1 ili 2, onda će se u promenljivu $res upisati 'a'. Ako promenljiva $num ima vrednost 3, onda će se u promenljivu $res upisati 'b':

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

Gore sam napisao da se ponekad koristi ova osobenost, ali ja, u principu, ne preporučujem da se njome koristite, jer kod postaje ne baš očigledan.

Očiglednije je rešiti takav zadatak pomoću if-ova:

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