⊗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; ?>

Вышэй я напісаў, што часам такую асаблівасць выкарыстоўваюць, але я, наогул кажучы, не рэкамендую ёй карыстацца, так як код становіцца не вельмі відавочным.

Відавочней вырашыць такую задачу праз іфы:

<?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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць