PHP cours 2 : boucles et conditions

I. Introduction à php : boucles et conditions

Dans un précédent cours, nous avions vu ensemble brièvement les bases du language PHP. J’avais promis de continuer la série de cours sur le PHP pour que vous puissiez petit à petit en faire quelquechose par vous-même quand vous aurez tout lu et compris.
Dans ce tutoriel, nous allons donc poursuivre en voyant comment fonctionnent les boucles et conditions en php, qui vont vous permettre de faire des vérifications, des conditions, des opérations récursives, entre autres. En gros, nous allons parler de IF, WHILE, FOR, SWITCH CASE, FOREACH, donc si vous maitrisez déjà tout cela, vous pourrez passer au tutorial PHP suivant sans problème.

II. Explications

1 – Les conditions (if et switch)

Si vous avez déjà regarder du code, même dans n’importe quel autre language, vous avez sûrement deja remarqué des instructions du genre if … else if … else … then qui reviennent souvent.
On appelle cela les conditions car on pose une conditions après le if, si (= IF) cette condition est vérifiée alors on exécute certaine(s) instruction(s), sinon si (= ELSE IF) une autre condition est vérifiée alors on exécute d’autres instructions, sinon (= ELSE) dans tous les autres cas on exécute une autre instruction encore différente des deux premières.

Voilà ce que ça donne en français, mais ce sera plus parlant sur un exemple PHP avec un if else :

<?php
// dans cet exemple simple, on suppose qu'on a recuperer l'âge de l'utilisateur dans une variable $votreage.
// l'instruction echo sert à écrire un message sur la page.

if ($votreage < 18) {
  echo "Vous êtes mineur";
}
else {
  echo "Vous êtes majeur";
}
?>

Maintenant un petit exemple avec un else if en supplément, pour que vous en compreniez l’utilité :

<?php
// si votre age est inferieur a 18 alors vous etes mineur ...
if ($votreage < 18) {
  echo "Vous êtes mineur";
}
// sinon si votre age est superieur ou egal a 18 alors vous etes majeur
else if ($votreage >= 18) {
  echo "Vous êtes majeur";
}
// sinon vous n'avez pas du rentré votre age car la variable ne contient pas de nombre
else {
  echo "Erreur : vous n'avez pas rentré votre âge";
}
?>

Attention, regardez bien le manuel php si vous ne connaissez pas les opérateurs, par exemple pour vérifier si une valeur est égale à une autre, il faut doubler le signe (if $votreage == 18)…

Vous pourriez à présent vous demander comment on fait lorsqu’on a trop de conditions à vérifier. Dans ce cas là, le “if” pourrait vite devenir très fastidieux car il y aurait un tas de “else if” qui viendrait à la suite. Dans ce cas là, il existe une autre solution qui est le “switch … case“. Puisqu’un bon exemple parle mieux que des mots, nous allons voir comment il fonctionne sur un exemple dans lequel j’ai une variable $num_mois qui contient le numéro d’un mois compris entre 1 et 12, que je veux transformer en nom du mois compris entre janvier et décembre :

<?php
// on suppose que $num_mois contient le numéro du mois et que $nom_mois va recevoir le nom du mois

switch ($num_mois)
{
case 1 :
$nom_mois = "Janvier";
break;
case 2 :
$nom_mois = "Février";
break;
case 3 :
$nom_mois = "Mars";
break;
case 4 :
$nom_mois = "Avril";
break;
// ici je coupe pour ne pas faire les 12 mois car vous avez compris le principe, et enfin si $num_mois n'est egal a aucune de ces valeurs on met :
default :
$nom_mois = "Inconnu";
}
?>

Vous l’aurez donc compris, l’instruction case permet de balayer toutes les valeurs que peut prendre la variable $num_mois, et dans le cas où elle contient une valeur qui nous intéresse on exécute une ou des instructions, et on termine par un “break;” qui a pour effet de sortir du “switch” car il est inutile de continuer à vérifier les valeurs suivantes. L’instruction “default” permet pour sa part de mettre une valeur par défaut si $num_mois n’est égal à aucune valeur vérifiée au dessus.
A noter que ce dernier exemple aurait pu être réaliser en beaucoup moins de lignes avec des tableaux (voir cours php numéro 1)

2 – Les boucles (for, while, foreach)

Nous allons maintenant voir les boucles en php. Commençons par la boucle “FOR” qui est assez compacte puisqu’elle contient entre parenthèses trois expressions permettant de l’initialiser (ex : i = 0;) de poser une condition à son terme (ex : i < 5 ) et de l’incrémenter ou décrémenter automatiquement (ex : i++). Ce qui va donner quelque chose que cette forme :

<?php
// cet exemple affichera en sortie : 0 - 1 - 2 - 3 - 4 -

for ($i=0; $i<5; $i++)
{
echo $i." - ";
}

?>

Maintenant prenons un exemple concret, et supposons que vous vouliez créer une liste de sélection en html, dans laquelle on peut sélectionner son année de naissance dans une page. Le seul petit souci c’est que vous voulez commencer les années à 1900 et terminer à 2000, ce qui parait normal. Pour faire une liste de ce genre en html, ça nécessiterait un code comme cela :

<p><select name="selannaissance">
<option value="1900">1900</option>
<option value="1901">1901</option>
....
<option value="1999">1999</option>
<option value="2000">2000</option>
</select> </p>

 Le problème comme vous le voyez, c’est qu’il faut rentrer chaque année à la main, et cela nous fera une bonne centaine de lignes vu qu’on en 100 à taper. Maintenant voyez comment je peux faire exactement le même résultat en php, et là vous allez comprendre que la boucle “for” peut être très utile :

<?php
echo "<select name=\"selannaissance\">";
for ($i=1900; $i<2001; $i++) {
  echo "<option value=\"$i\">$i</option>";
}
echo "</select>";
?>

Et voilà, les 100 lignes ont été réduites à 4 lignes réelles. C’est fortement appréciable pour le temps passé et la taille finale de votre fichier.

L’instruction “WHILE” pour sa part permet d’exécuter un bloc de commande tant qu’une condition est vraie. Elle n’est pas très éloignée du “FOR“, mais permet de faire d’autres choses quand même. On l’utilise souvent, par exemple, pour balayer les résultats d’une requête sur une base de données mysql. Tant (= while) qu’il y a un résultat, on affiche.
Un exemple de boucle while :

<?php
// on initialise la variable $i à 1
$i = 1;

// tant que $i est inférieur à 11
while ($i<11)
{
echo $i; // on affiche la valeur de $i
$i++; // on incrémente $i (revient à faire "$i = $i + 1;")
}

?>

Et enfin l’instruction foreach est utilisée uniquement pour les tableaux. Elle permet de balayer les valeurs d’un tableau et d’exécuter quelque chose en fonction. Exemple sur les mois encore :

<?php
$tab_mois = array(1 => "Janvier", 2 => "Février", 3 => "Mars", 4 => "Avril", 5 => "Mai", 6 => "Juin", 7 => "Juillet", 8 => "Août", 9 => "Septembre", 10 => "Octobre", 11 => "Novembre", 12 => "Décembre");

foreach ($tab_mois as $num_mois => $nom_mois)
{
  echo "Le numéro de mois " . $num_mois . " réprésente le mois de " . $nom_mois . "
" ;
}

?>

III. Conclusion du tutorial

Voilà ce tutoriel sur les boucles et conditions en PHP touche à sa fin, merci de l’avoir suivi jusqu’au bout. J’espère qu’il vous aura été utile, et rendez-vous très bientôt pour d’autres tutoriels sur le language PHP. Nous verrons notamment l’intéraction entre php et html, ainsi que celle avec la base de données mysql, qui vous permettra de faire des trucs encore plus sympathiques 🙂

Soyez le premier à commenter

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*