Cours de PHP : Les structures de contrôle
Les structures de contrôles permettent de contrôler la validité d'une expression et de poursuivre le script en fonction du résultat obtenu de ce contrôle.
Elles sont caractérisées par des parenthèses contenant l'expression à contrôler et parfois des accolades contenant les actions à exécuter.
1. L'expression IF 
1) IF(expression) { actions }
Voici la forme la plus simple de l'utilisation de " if ".
Cette expression pourrait se traduire ainsi : si " expression " est vrai alors exécute " action " sinon n'exécute pas " action " et continue.
Exemple :
$a = 5;
$b = 6;
if($a==$b) { echo "Nombres égaux"; }
Dans cette exemple rien ne sera affiché à l'écran puis que $a et $b sont différents.
Il faut savoir également que les accolades ne sont pas obligatoire lorsque les actions à réaliser se limitent à une seule expression, pour notre exemple nous aurions donc pu écrire :
if($a==$b) echo "Nombres égaux";
2) IF(expression) { actions1 } ELSE { action2 }
Cette expression se définie ainsi : si " expression " est vrai alors exécute " action1 " sinon on exécute " action2 ".
Voici un exemple :
$a = 5;
$b = 6;
if($a==$b) { echo "Nombres égaux"; }
else { echo "Nombres inégaux"; }
Dans ce cas notre exemple affichera "Nombres inégaux" puisque c'est l'instruction à réaliser si $a et $b ne sont pas égaux.
Ici aussi la remarque sur les accolades reste valable :
if($a==$b) echo "Nombres égaux";
else echo "Nombres inégaux";
3) IF(expression1) { actions1 } ELSEIF (expression2) { action2 } ELSE { action3 }
Cette derniere utilisation du " if " permet d'imbriquer autant d'expressions que nécessaire.
Un exemple sera plus parlant :
$a = 5;
$b = 6;
if($a>$b) { echo "A est supérieur à B"; }
elseif ($a<$b) { echo "A est inférieur à B"; }
else { echo "Nombres égaux"; }
Et bien sur la remarque sur les accolades restent valables...
Voici la forme la plus simple de l'utilisation de " if ".
Cette expression pourrait se traduire ainsi : si " expression " est vrai alors exécute " action " sinon n'exécute pas " action " et continue.
Exemple :
$a = 5;
$b = 6;
if($a==$b) { echo "Nombres égaux"; }
Dans cette exemple rien ne sera affiché à l'écran puis que $a et $b sont différents.
Il faut savoir également que les accolades ne sont pas obligatoire lorsque les actions à réaliser se limitent à une seule expression, pour notre exemple nous aurions donc pu écrire :
if($a==$b) echo "Nombres égaux";
2) IF(expression) { actions1 } ELSE { action2 }
Cette expression se définie ainsi : si " expression " est vrai alors exécute " action1 " sinon on exécute " action2 ".
Voici un exemple :
$a = 5;
$b = 6;
if($a==$b) { echo "Nombres égaux"; }
else { echo "Nombres inégaux"; }
Dans ce cas notre exemple affichera "Nombres inégaux" puisque c'est l'instruction à réaliser si $a et $b ne sont pas égaux.
Ici aussi la remarque sur les accolades reste valable :
if($a==$b) echo "Nombres égaux";
else echo "Nombres inégaux";
3) IF(expression1) { actions1 } ELSEIF (expression2) { action2 } ELSE { action3 }
Cette derniere utilisation du " if " permet d'imbriquer autant d'expressions que nécessaire.
Un exemple sera plus parlant :
$a = 5;
$b = 6;
if($a>$b) { echo "A est supérieur à B"; }
elseif ($a<$b) { echo "A est inférieur à B"; }
else { echo "Nombres égaux"; }
Et bien sur la remarque sur les accolades restent valables...
2. L'expression SWITCH 
Le test de contrôle " switch " correspond au test " if ... elseif " mais avec des valeurs ponctuelles.
Vous pouvez utiliser des valeurs numériques ou alphabétiques pour ces valeurs.
Exemple :
switch($choix)
{
case 1 : { echo "choix 1"; }break;
case 2 : { echo "choix 2"; }break;
case 3 : { echo "choix 3"; }break;
...
}
ou encore :
switch($choix)
{
case "premier" : { echo "choix 1"; }break;
case "deuxieme" : { echo "choix 2"; }break;
case "troisieme" : { echo "choix 3"; }break;
...
}
Le bloc d'instructions exécuté correspond donc à la " case " dont la valeur est égale à la variable $choix. Les autres blocs d'instructions seront ignorés.
Vous pouvez utiliser des valeurs numériques ou alphabétiques pour ces valeurs.
Exemple :
switch($choix)
{
case 1 : { echo "choix 1"; }break;
case 2 : { echo "choix 2"; }break;
case 3 : { echo "choix 3"; }break;
...
}
ou encore :
switch($choix)
{
case "premier" : { echo "choix 1"; }break;
case "deuxieme" : { echo "choix 2"; }break;
case "troisieme" : { echo "choix 3"; }break;
...
}
Le bloc d'instructions exécuté correspond donc à la " case " dont la valeur est égale à la variable $choix. Les autres blocs d'instructions seront ignorés.
3. Les expressions WHILE et DO...WHILE
Le test de contrôle " while " permet d'exécuter un bloc de donnés tant que la condition définie n'est pas respectée.
Vous pouvez utiliser des valeurs numériques ou alphabétiques pour ces valeurs.
1) WHILE(condition) { actions }
Pour utiliser la boucle while il faut avoir un index initialisé afin de définir une condition.
Vous pouvez définir cet index juste avant d'accomplir la boucle : bien souvent cet index est abrégé par le nom de variable $i.
Exemple :
$i = 1;
while($i < 10)
{
echo "Ligne $i <br>";
$i++;
}
Cette boucle affichera les nombres de 1 à 9.
2) DO { actions } WHILE(condition)
Le fonctionnement de cette boucle est le même que celui de la boucle "while" à la différence que cette fois la condition est testée aprés avoir exécuté le bloc d'instructions
Exemple :
$i = 1;
do
{
echo "Ligne $i <br>";
$i++;
}while($i < 10);
Cette boucle affichera les nombres de 1 à 10.
Vous pouvez utiliser des valeurs numériques ou alphabétiques pour ces valeurs.
1) WHILE(condition) { actions }
Pour utiliser la boucle while il faut avoir un index initialisé afin de définir une condition.
Vous pouvez définir cet index juste avant d'accomplir la boucle : bien souvent cet index est abrégé par le nom de variable $i.
Exemple :
$i = 1;
while($i < 10)
{
echo "Ligne $i <br>";
$i++;
}
Cette boucle affichera les nombres de 1 à 9.
2) DO { actions } WHILE(condition)
Le fonctionnement de cette boucle est le même que celui de la boucle "while" à la différence que cette fois la condition est testée aprés avoir exécuté le bloc d'instructions
Exemple :
$i = 1;
do
{
echo "Ligne $i <br>";
$i++;
}while($i < 10);
Cette boucle affichera les nombres de 1 à 10.
4. Les expressions FOR et FOREACH
La boucle "for" permet d'initialiser un index, de définir la condition d'arrêt et d'incrémenter l'index à chaque exécution du bloc d'instruction.
Il est donc plus commun d'utiliser cette boucle lorsqu'aucun index n'est défini.
1) FOR(index; condition; incrémentation) { actions }
Pour utiliser la boucle while il faut avoir un index initialisé afin de définir une condition.
Vous pouvez définir cet index juste avant d'accomplir la boucle : bien souvent cet index est abrégé par le nom de variable $i.
Exemple :
for($i = 1; $i < 10; i++)
{
echo "Ligne $i <br>";
}
Cette boucle affichera les nombres de 1 à 9.
2) FOREACH(tableau AS valeur) { actions }
Cette boucle est utilisée pour parcourir un tableau et en extraire les valeurs et les clefs
Exemple :
// definissons un tableau
$rubriques=array(01=>accueil, 02=>graphisme, 03=>webmastering);
foreach($rubrique as $data)
{
echo "Rubrique : $data<br>";
}
Cette boucle affichera :
Rubrique : accueil
Rubrique : graphisme
Rubrique : webmastering
Autre exemple avec le même tableau :
foreach($rubrique as $key=>$data)
{
echo "Rubrique $key : $data<br>";
}
Cette boucle affichera :
Rubrique 01 : accueil
Rubrique 02 : graphisme
Rubrique 03 : webmastering
Il est donc plus commun d'utiliser cette boucle lorsqu'aucun index n'est défini.
1) FOR(index; condition; incrémentation) { actions }
Pour utiliser la boucle while il faut avoir un index initialisé afin de définir une condition.
Vous pouvez définir cet index juste avant d'accomplir la boucle : bien souvent cet index est abrégé par le nom de variable $i.
Exemple :
for($i = 1; $i < 10; i++)
{
echo "Ligne $i <br>";
}
Cette boucle affichera les nombres de 1 à 9.
2) FOREACH(tableau AS valeur) { actions }
Cette boucle est utilisée pour parcourir un tableau et en extraire les valeurs et les clefs
Exemple :
// definissons un tableau
$rubriques=array(01=>accueil, 02=>graphisme, 03=>webmastering);
foreach($rubrique as $data)
{
echo "Rubrique : $data<br>";
}
Cette boucle affichera :
Rubrique : accueil
Rubrique : graphisme
Rubrique : webmastering
Autre exemple avec le même tableau :
foreach($rubrique as $key=>$data)
{
echo "Rubrique $key : $data<br>";
}
Cette boucle affichera :
Rubrique 01 : accueil
Rubrique 02 : graphisme
Rubrique 03 : webmastering
5. Les expressions BREAK et CONTINUE
1) BREAK
Break permet de sortir d'une boucle.
Exemple avec la boucle for :
for($i = 1; $i < 10; i++)
{
echo "Ligne $i <br>";
if($i == 5) break;
}
Cette boucle affichera les nombres de 1 à 5.
2) CONTINUE
Continue permet de poursuivre une boucle en coupant l'exécution du bloc en cours de lecture.
Exemple avec la boucle foreach :
// definissons un tableau
$rubriques=array(1=>accueil, 2=>graphisme, 3=>webmastering);
while ($rubrique as $key=>$data)
{
if ($key % 2 != 0) { continue; }
echo $data;
}
Cette boucle affichera :
accueil
webmastering
Break permet de sortir d'une boucle.
Exemple avec la boucle for :
for($i = 1; $i < 10; i++)
{
echo "Ligne $i <br>";
if($i == 5) break;
}
Cette boucle affichera les nombres de 1 à 5.
2) CONTINUE
Continue permet de poursuivre une boucle en coupant l'exécution du bloc en cours de lecture.
Exemple avec la boucle foreach :
// definissons un tableau
$rubriques=array(1=>accueil, 2=>graphisme, 3=>webmastering);
while ($rubrique as $key=>$data)
{
if ($key % 2 != 0) { continue; }
echo $data;
}
Cette boucle affichera :
accueil
webmastering


