Aller au contenu

PHP/Structures de contrôle

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
< PHP
Début de la boite de navigation du chapitre
Structures de contrôle
Icône de la faculté
Chapitre no 3
Leçon : PHP
Chap. préc. :Syntaxe du langage
Chap. suiv. :Tableaux
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « PHP : Structures de contrôle
PHP/Structures de contrôle
 », n'a pu être restituée correctement ci-dessus.

Qu'est qu'une structure de contrôle ? Pour faire simple, une structure de contrôle est un ensemble d'instructions qui permet de contrôler l'exécution du code. Il en existe essentiellement deux types :

  • Les structures de contrôle conditionnelles qui permettent d'exécuter certaines parties du code si une condition spécifique est remplie.
  • Les structures de contrôle de boucle qui permettent d'exécuter en boucle certaines parties du code (généralement jusqu'à ce qu'une condition soit remplie).

Structures de contrôle conditionnelles

[modifier | modifier le wikicode]

Instruction IF … ELSE …

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


Début de l'exemple
Fin de l'exemple



Début de l'exemple
Fin de l'exemple


Instruction SWITCH

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe



Début de l'exemple
Fin de l'exemple


Ici, seuls les instructions situées dans le "case 1" seront prisent en compte (le programme renvoie donc 1 1). À noter cependant que l'instruction switch() est (un peu) plus lente que l’utilisation du if, else et elseif. Cependant, elle s'avère très pratique dans les cas de redondance de conditions.

Opérateur ternaire

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe



Début de l'exemple
Fin de l'exemple


Enfin, un dernier exemple permettant de faire le rapprochement entre les structures ternaires et les instructions if et else. Les codes ci-dessous renvois le même résultat :

Avec if et else :

Début de l'exemple
Fin de l'exemple


Avec les ternaires :

Début de l'exemple
Fin de l'exemple


Les deux codes affichent alors "La variable est vraie !". L'intérêt est donc de gagner du temps de codage et de la place :)


On peut aussi utiliser l'opérateur ternaire dans le but d’une affectation d’une variable :

Début de l'exemple
Fin de l'exemple


Structures de contrôle de boucle

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


ExpressionInitale s'exécute une seule fois avant de rentrer dans la boucle (sert généralement à initialiser les variables de la boucle).

ExpressionCondtionnelleDePoursuite sert de test d'exécution du corps de la boucle (de poursuite ou non de l'itération) : l’expression est évaluée avant chaque passage dans la boucle, si l’expression n’est pas vérifiée, le code n’est pas exécuté, et l’on sort de la boucle.

ExpressionFinale s'exécute a chaque fin de boucle. (sert généralement à incrémenter automatiquement les variables de la boucle)

Début de l'exemple
Fin de l'exemple


Ici, le code a l'intérieur de la boucle sera exécuté 5 fois.

Boucle FOREACH

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


ou bien : FOREACH ( TableauElements AS CleElement => ElementCourant ) { ExecuterCodeBoucle }

TableauElements constitue un tableau d'éléments à parcourir.

ElementCourant représente l'élément courant du tableau dans la boucle. Au début de chaque passage dans la boucle, un nouvel élément du tableau est automatiquement affecté a ElementCourant. La boucle s'arrêtera d'elle-même lorsque tous les éléments du tableau auront été parcourus.

CleElement représente la clé de l'élément courant dans un tableau associatif.

Début de l'exemple
Fin de l'exemple


Début d’un principe
Fin du principe


Début de l'exemple
Fin de l'exemple


Ici, le compteur $i s'incrémentera jusqu'à avoir la valeur 5.

Boucle DO … WHILE

[modifier | modifier le wikicode]
Début d’un principe
Fin du principe


Début de l'exemple
Fin de l'exemple



Break et continue

[modifier | modifier le wikicode]

Il arrive souvent qu'on veuille sortir d’une boucle alors même que la condition de la boucle est encore vraie. Pour cela, on va faire appel à l'instruction break. Lorsque cette instruction sera exécutée, la boucle se terminera.

Début de l'exemple
Fin de l'exemple


Ici, la boucle démarre avec $i = 2. La boucle du while va recommencer jusqu'à ce que la condition du if soit vérifiée. Celle-ci dit que lorsque $i est égal à 5, il faut sortir de la boucle. Par conséquent, le echo affichera bien 5 !

L'instruction continue ne permet pas de sortir d’une boucle mais simplement de finir un tour de boucle prématurément (avant la fin du bloc d'instruction). Cela sert moins souvent que break, mais cela peut servir à gérer des exceptions.

Début de l'exemple
Fin de l'exemple


Ici, on parcourt les valeurs du tableau $mon_panier". Le if du bloc d'instruction est vérifié si la valeur ($value) est égale au contenu de la variable $j_aime (epinards). Lorsque la condition est vérifiée, le continue permet d'ignorer le reste de la boucle et de commencer un nouveau tour. Donc, le echo est ignoré et l’affichage d'"epinards" n’est pas pris en compte.

Le tout affichera "orange, roti de veau, ".