Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ppPmCdBNM 100 of 447 menu
◀ ▶

Opționalitatea break în PHP

Instrucțiunea break este opțională. Fără ea, însă, comportamentul blocurilor case va fi neașteptat. Să ne uităm la un exemplu. Să presupunem că avem următorul cod:

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

Să eliminăm toate instrucțiunile break, iar în variabila $num pentru început să atribuim numărul 3.

Pentru moment, totul va funcționa așa cum a funcționat:

<?php $num = 3; // să presupunem că aici este numărul 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // După execuție, codul va afișa 3 - totul este în regulă ?>

Să atribuim acum variabilei $num numărul 2. În acest caz, se va executa așteptat case 2, apoi, în mod neașteptat, și case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // După execuție, codul va afișa 2, apoi 3 ?>

Dacă variabilei $num i se atribuie numărul 1, atunci se vor executa toate constructiile case:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // După execuție, codul va afișa 1, apoi 2, apoi 3 ?>

Adică, se dovedește că, în absența break, după executarea case-ului intenționat, se vor executa și toate case-urile de sub el. Uneori această particularitate este folosită în rezolvarea problemelor.

În următorul exemplu, dacă variabila $num are valoarea 1 sau 2, atunci în variabila $res se va scrie 'a'. Dacă variabila $num are valoarea 3, atunci în variabila $res se va scrie 'b':

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

Mai sus am spus că uneori această particularitate este folosită, dar, în general, nu recomand să o folosiți, deoarece codul devine mai puțin evident.

Este mai evident să rezolvi o astfel de problemă cu instrucțiuni if:

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>
← →
↑
Română▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge