6.Le langage PHP

6.4.Les boucles (for, while, foreach, do) en PHP

6.4.1.Introduction

Eléments essentiels d'un langage de programmation les boucles permettent de répéter plusieurs fois une même opération , tant qu'une condition est remplie ou bien jusqu'à ce qu'elle soit remplie. Comme dans tous les langages de programmation, PHP gère les structures de boucle for et while mais aussi les déclinaisons foreach et do.

6.4.2.For

En PHP, la boucle for s'utilise avec la syntaxe suivante: instruction for, suivi d'une parenthèse ouvrante, suivi de la condition initiale (l'initialisation), suivi d'un point-virgule, suivi de la condition nécessaire à la poursuite de l'exécution de la boucle, suivi d'un point-virgule, suivi de l'opération à effectuer avant le nouveau test de condition, suivi d'une parenthèse fermante et enfin l'instruction (ou le bloc d'instructions) à exécuter (tant que la condition est vérifiée).
Ainsi pour afficher 10 fois 'Ceci est une boucle for en PHP' on pourra exécuter le code suivant
<?php
for ($i=0; $i<10; $i++) {
    echo 'Ceci est une boucle for en PHP';
}
?>
ou pour afficher les chiffres de 5 à 8
<?php
for ($i=5; $i<9; $i++) {
    echo $i;
}
?>
rem
  • l'instruction $i++ est équivalente à $i = $i + 1

6.4.3.While

Une boucle while s'écrit de la façon suivante: instruction while suivi, entres parenthèses, de la condition à remplir pour que l'instruction ou le bloc d'instructions qui suit soit exécuté.
<?php
while ($condition) {
    // instructions
}
?>
L'équivalent de la seconde boucle for précédente peut alors s'écrire
<?php
$i = 5;
while ($i < 9) {
    echo $i;
    $i++;
}
?>
Vous verrez souvent la boucle while utilisée avec l'appel à une fonction[c'est quoi?] de lecture de données (typiquement dans une base de données[c'est quoi?]) retournant en règle générale un tableau[c'est quoi?] tant qu'il y a des éléments ou NULL lorsqu'il n'y en a plus. L'écriture "basique" d'une telle situation donnera
<?php
$donnees = appelfonction();
while (NULL !== $donnees) {
    // traitement des donnees
    $donnees = appelfonction();
}
?>
Ce qui sera généralement raccourci en
<?php
while (NULL !== ($donnees = appelfonction())) {
    // traitement des donnees
}
?>

6.4.4.Foreach

L'instruction foreach est une fonction PHP très pratique. Elle est utilisable pour parcourir un tableau[c'est quoi?] (ou les membres d'un objet[c'est quoi?]). Il est ainsi possible d'afficher l'ensemble des éléments d'un tableau et les clés associées de la façon suivante:
<?php
foreach ($tableau as $cle => $valeur) {
    echo $cle.' - '.$valeur.'<br />'."\n";
}
?>
ou si l'on n'a pas besoin de connaitre les clés
<?php
foreach ($tableau as $valeur) {
    echo $valeur.'<br />'."\n";
}
?>

6.4.5.Do ... while

L'instruction do est associée au terme while (qui est parfois baptisé until dans d'autres langages que PHP). Elle est similaire à la boucle while à ceci près que les instructions sont exécutées au moins une fois, la condition n'étant testée pour la première fois qu'après exécution des instructions.
<?php
$i = 5;
do {
    echo $i;
    $i++;
} while ($i<9);
?>