Apprendre à coder sur pierre-giraud.com

DES COURS COMPLETS ET GRATUITS POUR TOUS

LES BOUCLES EN PHP

Présentation des boucles

Les boucles, tout comme les conditions, représentent l’une des fondations du PHP et il est donc essentiel de comprendre comment elles fonctionnent et de savoir les utiliser.

Les boucles vont nous permettre d’exécuter plusieurs fois un bloc de code tant qu’une condition donnée est vérifiée.

En effet, lorsque l’on code, on va souvent devoir exécuter plusieurs fois un même code. Utiliser une boucle nous permet de n’écrire le code qu’on doit exécuter plusieurs fois qu’une seule fois.

Nous disposons de quate boucles différentes en PHP :

  • La boucle while (« tant que ») ;
  • La boucle do… while (« faire… tant que ») ;
  • La boucle for (« pour ») ;
  • La boucle foreach (« pour chaque ») ;

Une nouvelle fois, nous allons principalement utiliser les boucles avec les variables.

La boucle PHP while

La boucle while (« tant que » en français) est la boucle PHP la plus simple à appréhender.

Cette boucle va nous permettre exécuter un certain bloc de code « tant qu’une » condition donnée est vérifiée.

Voyons à travers un exemple la syntaxe de cette boucle.

Utilisation de la boucle PHP while

Dans une boucle PHP while, un code va se répéter tant qu’une condition donnée est vérifiée

Dans l’exemple ci-dessus, on commence par stocker la valeur 0 dans notre variable $x. On dit également qu’on initialise notre variable.

Ensuite, on crée notre boucle while, qui va bien entendu réutiliser $x.

Dans le cas présent, on demande à notre boucle d’afficher la phrase $x contient la valeur : suivie de la valeur de $x tant que la valeur stockée dans $x ne dépasse pas 10.

On incrémente également notre variable à chaque nouveau passage dans la boucle, c’est-à-dire qu’on ajoute 1 à la dernière valeur connue de notre variable.

Cette étape d’incrémentation est indispensable. Sans celle-ci, $x contiendrait toujours la valeur 0 (sa valeur de départ) et on ne pourrait jamais sortir de la boucle.

Voici ce que va faire PHP : il va rentrer dans la boucle et vérifier la valeur de $x. Lors du premier passage dans la boucle, $x contient 0. La condition est donc vérifiée. On affiche donc la phrase $x contient la valeur 0 et on ajoute 1 à la valeur de $x.

$x contient donc maintenant 1. Comme 1 est toujours inférieur à 10, la condition de notre boucle est toujours vérifiée. On ne sort donc pas de la boucle et on effectue un deuxième passage.

Lors de ce deuxième passage, on affiche cette fois-ci la phrase $x contient la valeur 1 puisque $x contient désormais 1, puis on incrémente à nouveau $x. $x contient donc désormais la valeur 2.

Le PHP va continuer à effectuer des passages dans la boucle jusqu’à ce que la valeur contenue dans $x soit strictement supérieure à 10, c’est-à-dire jusqu’à ce que la condition ne soit plus vérifiée. Il sort alors de la boucle.

Notez qu'il faut toujours bien penser à initialiser la variable utilisée dans la boucle en dehors de la boucle. En effet, ici, si j'avais initialisé $x dans ma boucle, sa valeur aurait été réinitialisée à chaque nouveau passage de boucle !

Une nouvelle fois, pensez bien qu’il faudra toujours s’arranger pour qu’à un moment ou un autre la condition de la boucle ne soit plus vérifiée, afin de pouvoir en sortir. Dans le cas contraire, le PHP ne peut jamais sortir de la boucle et le script plante.

Evidemment, selon les cas, vous n’êtes pas obligés d’incrémenter la valeur de votre variable. Vous pouvez tout aussi bien décrémenter, multiplier par 2, etc.

La boucle PHP do…while

La boucle PHP do… while (« faire… tant que » en français) ressemble à priori à la boucle while mais va fonctionner en sens inverse.

Cette boucle va également nous permettre d’exécuter un code tant qu’une condition donnée est vraie, mais cette fois-ci la condition ne va être vérifiée qu’après avoir exécuté le code en question.

Ainsi, même si une condition est fausse dès le départ, on effectuera toujours au moins un passage au sein d’une boucle do…while, ce qui n’est pas le cas avec une boucle while.

Illustration de la boucle PHP do…while

On effectue toujours au moins un passage dans une boucle PHP do…while

Faites bien attention : le while est bien en dehors des accolades.

Dans l’exemple ci-dessus, nous avons créé deux boucles do…while afin de bien illustrer ce que j’ai dit précédemment.

Dans la première boucle, $x contient la valeur 0 au départ. La phrase est affichée et la valeur de $x est incrémentée puis la condition est vérifiée.

On sort ensuite de la boucle lorsque $x contient 6. En effet, regardez bien notre boucle : on affiche $x contient la valeur 5 lors du dernier passage puis on incrémente à nouveau cette valeur. Lorsqu’on teste $x, la variable contient donc bien 6.

la deuxième boucle est strictement la même que la première à part qu’on utilise cette fois-ci une variable $y.

Notre variable $y contient la valeur 20 au départ et ainsi la condition de la boucle est fausse dès le départ. Cependant, dans le cadre d'une boucle do…while, la condition n’est vérifiée qu’en fin de boucle, c’est-à-dire après le passage dans la boucle.

Ainsi, même si la condition est fausse dès le départ, on effectue tout de même un premier passage dans la boucle (et on exécute donc le code à l'intérieur).

La boucle PHP for

La boucle PHP for (« pour » en français) est plus complexe à appréhender à priori que les boucles précédentes.

Cependant, cette boucle est très puissante et c’est celle qui sera majoritairement utilisée dans nos scripts PHP, faites donc l’effort de comprendre comment elle fonctionne.

Nous allons devoir préciser trois phases au sein d’une boucle for :

  • Une phase d’initialisation ;
  • Une phase de test ;
  • Une phase d’incrémentation.

Dans la phase d’initialisation, nous allons tout simplement initialiser la variable que nous allons utiliser dans la boucle.

Dans la phase de test, nous allons préciser la condition qui doit être vérifiée pour rester dans la boucle.

Dans la phase d’incrémentation, nous allons pouvoir incrémenter ou décrémenter notre variable afin que notre condition soit fausse à un moment donné.

Voyons immédiatement à travers un exemple ce que cela signifie.

Utilisation d’une boucle PHP for

La boucle PHP for est très utilisée en PHP

Comme vous pouvez le voir, on initialise cette fois-ci directement notre variable à l’intérieur de notre boucle. Ensuite, nous sommes en territoire connu, seule la syntaxe change par rapport aux boucles vues précédemment.

Notez qu’on a cette fois-ci décrémenté notre variable, pour changer par rapport aux exemples précédents.

Notez également que vous devez séparer chaque phase par un point virgule.

La boucle PHP foreach

La boucle PHP foreach est un peu particulière puisqu’elle a été créée pour fonctionner avec des variables tableaux, qui sont des variables spéciales que nous n’avons pas encore étudiées.

Nous étudierons donc le fonctionnement de cette boucle en même temps que le type de valeur PHP array (« tableau » en français).

Quelle boucle utiliser dans quelle circonstance ?

A ce stade, vous pourriez vous demander quand utiliser une boucle PHP plutôt qu’un autre.

Il va être très simple de déterminer quelle boucle PHP utiliser pour chaque situation.

Tout d’abord, si vous travaillez avec des tableaux, vous utiliserez une boucle PHP for ou foreach selon le type de tableau sur lequel vous travaillez.

Si vous savez à l’avance combien de passages vous allez effectuer dans la boucle, alors vous utiliserez la boucle PHP for. En effet, cette boucle à été conçue pour un nombre de passage précis.

Si vous ne savez pas à priori combien de passages vous allez effectuer dans votre boucle, mais que votre code a besoin d’effectuer toujours au moins un passage dans la boucle, vous utiliserez une boucle PHP do…while.

Finalement, si vous ne savez pas combien de passages vous allez effectuer dans votre boucle et que vous ne souhaitez entrer dans la boucle que si la condition est vraie à un moment donné, vous utiliserez une boucle PHP while.

Chapitre précédent

Chapitre suivant