⊗ppPmLpFl 124 of 447 menu

Travailler avec des drapeaux en PHP

Maintenant, nous allons apprendre à travailler avec des drapeaux. Un drapeau est une variable spéciale qui ne peut prendre que deux valeurs : true et false. À l'aide de drapeaux, il est possible de résoudre des tâches vérifiant l'absence de quelque chose : par exemple, on peut vérifier qu'un tableau n'a pas d'élément avec une certaine valeur. Commençons.

Résolvons la tâche suivante : un tableau de nombres est donné, il faut vérifier s'il contient un élément avec la valeur 3 ou non. S'il y en a - affichons '+++', s'il n'y en a pas - affichons '---'.

Pour commencer, essayons d'afficher '+++'. Pour cela, parcourons tous les éléments de notre tableau et demandons avec un 'if' - l'élément courant est-il égal à la valeur 3 ? S'il est égal - affichons '+++' :

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; } } ?>

Mais notre solution n'est pas très bonne : car si dans le tableau il n'y a pas une seule valeur 3, mais plusieurs, alors '+++' s'affichera plusieurs fois. Modifions notre tableau (faisons deux éléments avec la valeur 3) et assurons-nous-en :

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // affichera plusieurs fois } } ?>

Corrigeons le problème : terminons la boucle avec break, si l'élément est déjà trouvé :

<?php $arr = [1, 2, 3, 4, 3, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; break; // terminons la boucle } } ?>

Essayons maintenant de faire en sorte que, s'il n'y a aucun élément avec la valeur 3 dans le tableau, '---' soit affiché. Une idée fausse courante serait d'ajouter else à notre 'if' - dans ce cas '---' sera affiché pour tous les éléments qui ne sont pas 3 :

<?php $arr = [1, 2, 3, 4, 5]; foreach ($arr as $elem) { if ($elem === 3) { echo '+++'; // affichera sur l'élément 3 } else { echo '---'; // affichera sur les éléments 1, 2, 4, 5 } } ?>

Ainsi, l'idée d'ajouter else est une mauvaise idée, qui ne fonctionne pas. Pour résoudre des tâches de ce type (ces tâches sont assez courantes), on utilise ce qu'on appelle des drapeaux.

Comme mentionné ci-dessus, un drapeau est une variable qui ne peut prendre que deux valeurs : true ou false.

Alors, créons une variable flag avec cette signification : si elle est égale à true, alors le tableau contient un élément 3, et si elle est false, alors il n'y a pas un tel élément.

Initialement, mettons la variable flag à la valeur false - c'est-à-dire que nous considérerons qu'il n'y a pas d'élément 3 dans le tableau :

$arr = [1, 2, 3, 4, 5]; $flag = false; // considérons qu'il n'y a pas d'élément 3 dans le tableau

Ensuite, lançons une boucle avec un 'if' comme nous le faisions auparavant. Si la boucle détecte que le tableau a un élément 3 - alors mettons la variable flag à la valeur true et sortons de la boucle avec break :

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; // considérons qu'il n'y a pas d'élément 3 dans le tableau foreach ($arr as $elem) { if ($elem === 3) { $flag = true; // l'élément existe - redéfinissons la variable $flag break; // sortons de la boucle } } ?>

La réponse à la question, savoir si le tableau contient 3 ou non, nous ne pouvons la donner qu'après la boucle. Et cette réponse, nous l'avons déjà : après la boucle, la variable flag pourrait être restée false ou pourrait avoir changé sa valeur en true, si la boucle a détecté 3 dans le tableau :

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } // ici la variable $flag est égale à true ou à false ?>

Maintenant, après la boucle, nous pouvons faire un 'if' qui regardera la variable flag et affichera à l'écran '+++' ou '---' :

<?php $arr = [1, 2, 3, 4, 5]; $flag = false; foreach ($arr as $elem) { if ($elem === 3) { $flag = true; break; } } if ($flag === true) { echo '+++'; } else { echo '---'; } ?>

Un tableau est donné :

<?php $arr = ['a', 'b', 'c', 'd', 'e']; ?>

Vérifiez que ce tableau contient l'élément 'c'. S'il y en a - affichez '+++', et s'il n'y en a pas - affichez '---'.

Écrivez un code qui vérifiera si un nombre est premier ou non. Un nombre premier est divisible seulement par un et par lui-même, et n'est divisible par aucun autre nombre.

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