Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Officiels > Site Web > Un site dynamique avec PHP ! > Les bases de PHP > Les boucles > Lecture du tutoriel

Les boucles

Avatar
Auteur : M@teo21
Note : 19 / 20 (13 votes)
Visualisations : 318 513

Plus d'informations Plus d'informations
On a bientôt fini la Partie I : les bases de PHP ! :D
Ceci est l'avant-dernier chapitre. C'est une des dernières connaissances "de base" à acquérir avant que vous puissiez commencer à découvrir l'aspect vraiment intéressant de PHP.

Normalement, si vous avez bien compris les conditions, ce devrait être un chapitre facile à avaler (et à digérer ;) )
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Une boucle simple : While

Qu'est-ce qu'une boucle ?
Une boucle, c'est une structure qui fonctionne sur le même principe que les conditions (if... else). D'ailleurs vous allez voir qu'il y a pas mal de similitudes avec le chapitre sur les conditions.
Concrètement, une boucle permet de répéter plusieurs fois des instructions. En clair, c'est un gain de temps, c'est très pratique et bien souvent indispensable.

On peut faire un schéma si vous voulez :
Image utilisateur

Voilà ce qui se passe dans une boucle :
  1. Comme d'habitude, les instructions sont d'abord exécutés dans l'ordre, de haut en bas (flèche rouge)
  2. A la fin des instructions, on retourne à la première (flèche verte)
  3. Et on recommence à lire les instructions dans l'ordre (flèche rouge)
  4. Et on retourne à la première (flèche verte)
  5. etc etc...

Le seul hic dans ce schéma, c'est que ça ne s'arrête jamais ! Les instructions seraient réexécutées à l'infini !
C'est pour cela que, quel que soit le type de boucle (While ou For), il faut indiquer une condition. Tant que la condition est remplie, les instructions sont réexécutées. Dès que la condition n'est plus remplie, on sort enfin de la boucle (ouf !).

Voici comment faire avec une boucle simple : While.

Code : PHP
1
2
3
4
5
6
<?php
while ($continuer_boucle == "oui")
{
    // instructions à exécuter dans la boucle
}
?>


"While" peut se traduire par "Tant que". Ici, on demande à PHP : TANT QUE $continuer_boucle est égal à "oui", exécuter ces instructions :

Les instructions qui sont répétées en boucle se trouvent entre les accolades { et }. Mais bon là je vous apprends rien, vous commencez à avoir l'habitude de voir des accolades de partout ;)

Et puis voilà, ma foi vous savez tout :p
Ceci dit, je vais quand même vous montrer 1 ou 2 exemples d'utilisation de boucles, pour que vous voyiez à quoi ça peut servir...

Pour notre premier exemple, on va supposer que vous avez été punis et que vous devez recopier 100 fois "Je ne dois pas regarder les mouches voler quand j'apprends le PHP."
Avant, il fallait prendre son mal en patience et ça prenait des heuuuures. Maintenant, avec PHP, on va faire ça en un clin d'oeil :D

Regardez ce code :

Code : PHP
1
2
3
4
5
6
7
8
9
<?php
$nombre_de_lignes = 1;

while ($nombre_de_lignes <= 100)
{
    echo "Je ne dois pas regarder les mouches voler quand j'apprends le PHP.<br />";
    $nombre_de_lignes++; // $nombre_de_lignes = $nombre_de_lignes + 1
}
?>


La boucle pose la condition : TANT QUE $nombre_de_lignes est inférieur ou égal à 100
Dans cette boucle, il y 2 instructions :

A chaque fois qu'on fait une boucle, la valeur de la variable augmente : 1, 2, 3, 4... 98, 99... Dès que la variable atteint 100, on arrête la boucle. Et voilà, on a écrit 100 lignes en un clin d'oeil :)
Et si la punition avait été plus grosse, pas de problème ! Il suffirait de changer la condition (par exemple mettre "TANT que c'est inférieur à 500" pour l'écrire 500 fois).

Il faut TOUJOURS s'assurer que la condition sera au moins remplie une fois. Si elle ne l'est jamais, alors la boucle s'exécutera à l'infini !
PHP refuse normalement de travailler plus d'une quinzaine de secondes. Il s'arrêtera tout seul s'il voit que son travail dure trop longtemps et affichera un message d'erreur.

Nous venons donc de voir comment afficher une phrase plusieurs centaines de fois sans efforts.

Mais est-ce vraiment utile ? On n'a pas besoin de faire ça sur un site web ?!
C'est vrai. Je peux difficilement vous dire à quoi ça va vraiment nous servir, mais sachez que ça sera très utile dans la partie II de ce cours. En effet, nous serons très souvent amenés à répéter plusieurs fois des instructions et la boucle While nous sera alors très utile !
Je vous demande juste pour le moment de pratiquer et de comprendre comment ça marche.

Bon, un autre exemple pour le fun ?
On peut écrire de la même manière une centaine de lignes, mais chacune peut être différente (on n'est pas obligés d'écrire la même chose à chaque fois).
Cet exemple devrait vous montrer que la valeur de la variable augmente à chaque passage dans la boucle :

Code : PHP
1
2
3
4
5
6
7
8
9
<?php
$nombre_de_lignes = 1;

while ($nombre_de_lignes <= 100)
{
echo "Ceci est la ligne n°$nombre_de_lignes<br />";
$nombre_de_lignes++;
}
?>


Voilà, c'est tout bête, et cet exemple ressemble beaucoup au précédent. La particularité là, c'est qu'on affiche à chaque fois la valeur de $nombre_de_lignes (ça vous permet de voir que sa valeur augmente petit à petit).

Pour info, l'astuce que je vous avais donnée dans le chapitre sur les conditions marche aussi ici : vous pouvez fermer le tag PHP ?>, écrire du texte en HTML, puis réouvrir le tag PHP <?php
Ca vous évite d'utiliser une instruction echo.
On aura l'occasion d'utiliser cette astuce de nombreuses fois dans la partie II.

Une boucle plus complexe : For

Mais non, n'ayez pas peur voyons :p
Il ne vous arrivera rien de mal, le mot "complexe" ne veut pas dire "compliqué".

For est un autre type de boucle, qui produit exactement le même résultat mais qui est adapté à un type particulier de boucles. Dans tous les cas, vous pouvez utiliser un While, ça marche à tous les coups.
Pour ma part, je préfère toujours utiliser un While, mais je veux que vous voyiez rapidement le For pour que vous ne soyez pas étonnés si vous en rencontrez un jour ;)

Alors, comment ça marche un For ? Ca ressemble beaucoup au While, mais c'est la première ligne qui est un peu particulière. Pour que vous voyiez bien la différence avec le While, je reprends exactement l'exemple précédent, mais cette fois avec un For :

Code : PHP
1
2
3
4
5
6
<?php
for ($nombre_de_lignes = 1; $nombre_de_lignes <= 100; $nombre_de_lignes++)
{
echo "Ceci est la ligne n°$nombre_de_lignes<br />";
}
?>


Que de choses dans une même ligne ! o_O

Bon, vous vous en doutez, je ne vais vous expliquer que la ligne du for, le reste n'a pas changé.

Après le mot for, il y a des parenthèses (si si je vous jure ! :lol: )
Dans ces parenthèses, il y a 3 éléments, séparés par des point-virgules ;
Décrivons chacun de ces éléments :

Les deux derniers codes donnent donc exactement le même résultat.
A votre avis, lequel des deux est le plus adapté dans ce cas ? C'est plutôt le For, car comme vous le voyez tout est prévu pour faire tenir ça dans une ligne.

Comment savoir lequel prendre quand je dois choisir entre un While et un For ?
While marche à tous les coups.
For ne marche que quand on a un nombre qui s'incrémente, comme on a fait ici. Donc For est parfois plus adapté, mais personne ne vous tuera si, comme moi, vous préférez utiliser un While tout le temps :p

Q.C.M.

Une boucle s'arrête...
Combien de fois cette boucle sera-t-elle exécutée ?Code : PHP
1
2
3
4
5
6
7
8
9
<?php
$boucle = 10;

while ($boucle > 0)
{
    // Instructions
    $boucle = $boucle - 2;
}
?>
Que se serait-il passé dans le code précédent si on avait mis un >= au lieu du symbole > ?
Que signifie $variable++; ?
Allez, on va pas faire 50 questions identiques, on finit par un truc tordu, si vous trouvez c'est que vous avez tout compris ;o)
Combien de fois le message est-il affiché ?Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?php
$message = "Je me répète là, non ?";

for ($boucle1 = 1; $boucle1 <= 20; $boucle1++)
{
    for ($boucle2 = 1; $boucle2 <= 10; $boucle2++)
    {
        echo $message;
    }
}
?>

Statistiques de réponses au QCM


Croyez-moi, les boucles c'est vraiment très pratique !
Grâce à elles, il y a des scripts PHP que l'on peut écrire en quelques lignes de code et qui pourtant effectuent beaucoup de calculs !

Vous aurez en particulier l'occasion de vous servir des boucles lorsque vous attaquerez la partie II : la base de données. D'ailleurs, c'est dans pas longtemps, vu qu'on a presque terminé les bases du PHP ^^
Chapitre précédent Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 19/07/2005 à 23:21:44
Modifié : le 08/09/2008 à 18:47:08
Avancement : 100%
Licence : Copie non autorisée

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 328 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0336s (0.0166s)