Cours et tutoriaux Photoshop, Flash, Fireworks, Paintshop et sur le développement de sites Web XHTML, PHP, MySQL...

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 Icone remonter en haut de page

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...

2. L'expression SWITCH Icone remonter en haut de page

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.

3. Les expressions WHILE et DO...WHILEIcone remonter en haut de page

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.

4. Les expressions FOR et FOREACHIcone remonter en haut de page

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

5. Les expressions BREAK et CONTINUEIcone remonter en haut de page

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


Utilisez FireFoxW3C XHTML 1.0W3C CSS 2.1