⊗ppPmCdBNM 100 of 447 menu

Opcjonalność break w PHP

Polecenie break jest opcjonalne. Bez niego jednak zachowanie bloków case będzie nieoczekiwane. Spójrzmy na przykład. Załóżmy, że mamy taki kod:

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

Usuńmy w nim wszystkie break, a do zmiennej $num na początek wpiszmy liczbę 3.

Na razie wszystko będzie działać tak, jak działało:

<?php $num = 3; // niech tutaj będzie liczba 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Po uruchomieniu kod wypisze 3 - wszystko w porządku ?>

Spróbujmy teraz do zmiennej $num wpisać liczbę 2. W tym przypadku wykona się, zgodnie z oczekiwaniami, case 2, a potem nieoczekiwanie również case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Po uruchomieniu kod wypisze 2, a potem 3 ?>

Jeśli zaś do zmiennej $num wpiszemy liczbę 1, to wykonają się w ogóle wszystkie konstrukcje case:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Po uruchomieniu kod wypisze 1, potem 2, a potem 3 ?>

Czyli okazuje się, że przy braku break po wykonaniu zamierzonego case, wykonają się również wszystkie case poniżej niego. Czasami tę cechę wykorzystuje się, przy rozwiązywaniu zadań.

W następnym przykładzie, jeśli zmienna $num ma wartość 1 lub 2, to do zmiennej $res zostanie wpisane 'a'. Jeśli zaś zmienna $num ma wartość 3, to do zmiennej $res zostanie wpisane 'b':

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

Powyżej napisałem, że czasami tę cechę wykorzystuje się, ale ja, ogólnie rzecz biorąc, nie polecam jej używać, ponieważ kod staje się nie zbyt oczywisty.

Oczywistsze jest rozwiązanie takiego zadania przez ify:

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć