⊗ppPmCdBNM 100 of 447 menu

L'optionalité de break en PHP

L'instruction break est optionnelle. Cependant, sans elle, le comportement des blocs case sera inattendu. Regardons un exemple. Supposons que nous ayons le code suivant :

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

Supprimons tous les break, et dans la variable $num, enregistrons pour commencer le nombre 3.

Pour l'instant, tout fonctionnera comme avant :

<?php $num = 3; // supposons le nombre 3 ici switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Après l'exécution, le code affichera 3 - tout va bien ?>

Maintenant, enregistrons dans la variable $num le nombre 2. Dans ce cas, le case 2 sera exécuté comme prévu, puis, de manière inattendue, case 3 le sera également :

<?php $num = 2; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Après l'exécution, le code affichera 2, puis 3 ?>

Si, en revanche, nous enregistrons dans la variable $num le nombre 1, alors absolument toutes les structures case seront exécutées :

<?php $num = 1; switch ($num) { case 1: echo 1; case 2: echo 2; case 3: echo 3; } // Après l'exécution, le code affichera 1, puis 2, puis 3 ?>

Autrement dit, il s'avère qu'en l'absence de break, après l'exécution du case prévu, tous les case en dessous de lui seront également exécutés. Parfois, cette particularité est utilisée pour résoudre des problèmes.

Dans l'exemple suivant, si la variable $num a la valeur 1 ou 2, alors la valeur 'a' sera enregistrée dans la variable $res. Si la variable $num a la valeur 3, alors la valeur 'b' sera enregistrée dans la variable $res :

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

Plus haut, j'ai écrit que parfois cette particularité est utilisée, mais en général, je ne recommande pas de l'utiliser, car le code devient peu évident.

Il est plus évident de résoudre un tel problème avec des conditions if :

<?php $num = 1; if ($num == 1 or $num == 2) { $res = 'a'; } if ($num == 3) { $res = 'b'; } echo $res; ?>
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser