⊗ppPmCdBNM 100 of 447 menu

Neobveznost break v PHP

Ukaz break je neobvezen. Brez njega pa bo vedenje blokov case nenavadno. Poglejmo si na primeru. Recimo, da imamo takšno kodo:

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

Odstranimo vse break, v spremenljivko $num pa za začetek zapišimo številko 3.

Za zdaj bo vse delovalo tako kot prej:

<?php $num = 3; // naj bo tukaj številka 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Po zagonu bo koda izpisala 3 - vse je v redu ?>

Poskusimo zdaj v spremenljivko $num zapisati številko 2. V tem primeru se bo pričakovano izvedel case 2, nato pa še nepričakovano tudi case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Po zagonu bo koda izpisala 2 in nato 3 ?>

Če pa v spremenljivko $num zapišemo številko 1, se bodo izvedle vse konstrukcije case:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Po zagonu bo koda izpisala 1, nato 2 in nato 3 ?>

Se pravi, če ni break, se po izvedbi načrtovanega case, izvedejo tudi vsi case pod njim. Včasih to lastnost uporabimo pri reševanju problemov.

V naslednjem primeru, če ima spremenljivka $num vrednost 1 ali 2, se v spremenljivko $res zapiše 'a'. Če pa ima spremenljivka $num vrednost 3, se v spremenljivko $res zapiše 'b':

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

Zgoraj sem napisal, da včasih to lastnost uporabimo, vendar na splošno ne priporočam njeno uporabe, saj koda postane ne zelo očitna.

Bolj očitno je tak problem rešiti z if stavki:

<?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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni