Bonjour à tous !

J'apprends le php et au fur et à mesure je me pose des questions sur les boucles et les constantes.

ma question est très simple, à quoi sert les boucles (while, for, do while) et les constantes dans la pratique c'est à dire dans l'usage direct du PHP ?

et merci par avance

1 réponse


Azorgh
Réponse acceptée

Hello !

Je ne saurais expliquer correctement l'utilisation des constantes (même si j'en utilise tous les jours, c'est plus devenue une habitude aujourd'hui).

Par contre sur les boucles, je vais essayer d'être le plus clair possible.

Le but du PHP est d'avoir un site web dynamique, avec la récupération de données via une base de données par exemple.
Tu as donc créé un blog avec des articles. Et bien sur ta page d'accueil, tu voudrais afficher tous les articles (on imagine).
Tu va donc lancer ta requête en base de données qui va te retourner un tableau. Le but ? Parcourir toutes les entrées de ce tableau (qui corresponde à un article chacune) et afficher les données :

$mes_articles = array(/*  Ce tableau est le résultat de ta requête en base de données */);
//On parcours toutes les entrées de ce tableau grâce à "foreach"
foreach($mes_articles as $un_article){
    //On affiche le titre de chaque article séparé d'un saut de ligne.
    echo $un_article['titre'] . '<br/>';
}

Pour ce qui est des autres types de boucle, personnellement je les utilises moins souvent, mais ça m'est arrivé.
Le while permet de boucler jusqu'à temps que tu lui dise de s'arrêter (si on oublie de l'arrêter, sa s'appelle une boucle infinie).
Par exemple tu veux boucler sur tous tes résultats, mais t'arrêter quand tu n'as plus de résultat :

$continuer = true;
while($continuer){
    $nombre = rand(0, 100);//On génère un nombre, c'est pour l'exemple osef

    if($nombre > 90){
        $continuer = false;
    }else{
        echo $nombre;
    }
}

echo "Turlututu chapeau pointu";

Dans l'exemple ci dessus, dès que $nombre est supérieur à 90 alors on passe à la suite et on affiche "Turlututu chapeau pointu"

Le "for" te permet de boucler X fois (ou tu connais X). Par exemple tu veux faire 100 fois un calcul (aucun utilité, je te l'accorde):

for($i = 0;  $i < 100; $i++){
    $calcul = 2 + 2;
    if($calcul == 4){
        echo "Youpi";
    }
}

Si tu lance ce morceau de code, tu va te retrouver avec exactement 100 "Youpi" d'affichés sur ta page.

Pour ce qui est du do while, c'est un mode de fonctionnement équivalent au while, sauf que l'on rentre forcément une fois à l'intérieur.
Exemple :

$continuer = false;
while($continuer){
    //Ici un super traitement
}

Dans cet exemple, je ne rentre jamais dans ma boucle while, car $continuer = false.

Si j'ai un cas, ou je ne connais pas $continuer (ou == false) mais que je veux effectuer au moins une fois la boucle pour vérifier un résultat, alors j'utilise le Do While :

$continuer = false;
$stop = 50;
$nombre_de_boucles = 0;

do{
    //Je fais un super traitement
    if(2 + 2 == 4){
        $continuer = true;
    }

    if($stop >= $nombre_de_boucles){
        $continuer = false;
    }

    $nombre_de_boucles++;
}while($continuer);

Même si $continuer est à false, je rentre au moins une fois dedans, et je regarde si 2 + 2 = 4. Comme c'est exact, je passe $continuer à true, donc il va recommencer, encore, et encore, et encore (jusqu’à ce que le serveur plante).
Edit : J'ai rajouté un test qui fait que si on a fait 50 fois la boucle, alors on l'arrête en passant $continuer à false.

J'espère avoir répondu (au moins un petit peu) à ta question sur les boucles !