⊗ppPmCdBNM 100 of 447 menu

Break neprivalomumas PHP

Komanda break yra neprivaloma. Be jos, tačiau, case blokų elgsena bus netikėta. Pažiūrėkime pavyzdžiu. Tarkime, mes turime tokį kodą:

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

Pašalinkime jame visus break, o į kintamąjį $num pradžiai įrašykime skaičių 3.

Kol kas viskas veiks taip, kaip ir veikė:

<?php $num = 3; // tarkime čia skaičius 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Paleidus kodas išves 3 - viskas gerai ?>

Dabar į kintamąjį $num įrašykime skaičių 2. Šiuo atveju mūsų tikimasi vyks case 2, o po to netikėtai dar ir case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Paleidus kodas išves 2, o po to 3 ?>

Jei į kintamąjį $num įrašyti skaičių 1, tai išvis vyks visos case konstrukcijos:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Paleidus kodas išves 1, po to 2, o po to 3 ?>

Tai pasirodo, kad be break, po numatyto case vykdymo, vykdomi ir visi case žemiau jo. Kartais šią ypatybę naudoja, sprendžiant uždavinius.

Kitame pavyzdyje, jei kintamasis $num turi reikšmę 1 arba 2, tai į kintamąjį $res bus įrašyta 'a'. Jei kintamasis $num turi reikšmę 3, tai į kintamąjį $res bus įrašyta 'b':

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

Aukščiau rašiau, kad kartais šią ypatybę naudoja, bet aš, generally, nerekomenduoju jos naudoti, nes kodas tampa ne labai akivaizdus.

Akivaizdžiau išspręsti tokį uždavinį su if:

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