⊗ppPmCdBNM 100 of 447 menu

A break opcionálissága PHP-ben

A break parancs opcionális. Ugyanakkor, enélkül a case blokkok viselkedése váratlan lesz. Nézzük meg egy példán. Tegyük fel, hogy van egy ilyen kódunk:

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

Távolítsuk el belőle az összes break-et, és a változóba $num kezdetben írjunk be a 3 számot.

Egyelőre minden úgy fog működni, ahogy eddig is:

<?php $num = 3; // tegyük fel, hogy itt a 3-as szám van switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // A futtatás után a kód kiírja a 3-ast - minden rendben ?>

Most írjuk be a $num változóba a 2 számot. Ebben az esetben várhatóan lefut a case 2, majd váratlanul a case 3 is:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // A futtatás után a kód kiírja a 2-t, majd a 3-ast ?>

Ha viszont a $num változóba a 1 számot írjuk, akkor az összes case szerkezet le fog futni:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // A futtatás után a kód kiírja az 1-et, majd a 2-t, majd a 3-ast ?>

Vagyis kiderül, hogy a break hiányában az eltervezett case végrehajtása után, az alatta lévő összes case is végrehajtódik. Néha ezt a sajátosságot felhasználják feladatok megoldásánál.

A következő példában, ha a $num változó értéke 1 vagy 2, akkor a $res változóba az 'a' kerül. Ha viszont a $num változó értéke 3, akkor a $res változóba az 'b' kerül:

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

Fentebb írtam, hogy néha ezt a sajátosságot felhasználják, de én, összességében, nem ajánlom a használatát, mert a kód kevésbé lesz nyilvánvaló.

Nyilvánvalóbb egy ilyen feladatot if-ekkel megoldani:

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás