⊗ppPmCdBNM 100 of 447 menu

Break neobligātums PHP

Komanda break ir neobligāta. Bez tās, tomēr, case bloku darbība būs negaidīta. Apskatīsim piemērā. Pieņemsim, ka mums ir šāds kods:

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

Noņemsim no tā visus break, un mainīgajā $num sākumā ierakstīsim skaitli 3.

Sākumā viss darbosies tā, kā darbojās:

<?php $num = 3; // pieņemsim, ka šeit ir skaitlis 3 switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Pēc palaišanas kods izvadīs 3 - viss labi ?>

Ierakstīsim tagad mainīgajā $num skaitli 2. Šajā gadījumā mums, kā gaidīts, izpildīsies case 2, un tad negaidīti arī case 3:

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Pēc palaišanas kods izvadīs 2 un pēc tam 3 ?>

Ja mainīgajā $num ierakstītu skaitli 1, tad izpildītos visi case bloki:

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Pēc palaišanas kods izvadīs 1, tad 2 un pēc tam 3 ?>

Tātad sanāk, ka, ja nav break, pēc iecerētā case izpildes, izpildīsies arī visi case zem tā. Dažreiz šo īpatnību izmanto, risinot uzdevumus.

Nākamajā piemērā, ja mainīgajam $num ir vērtība 1 vai 2, tad mainīgajā $res ierakstīsies 'a'. Ja mainīgajam $num ir vērtība 3, tad mainīgajā $res ierakstīsies 'b':

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

Iepriekš es rakstīju, ka dažreiz šo īpatnību izmanto, bet es, kopumā, neatbalstu tās lietošanu, jo kods kļūst ne ļoti acīmredzams.

Acīmredzamāk šādu uzdevumu atrisināt ar if:

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>
Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt