Les structures de contrôle

  • Introduction
  • Informations
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.  
Netger
  • Auteur : Netger
  • Publication : 21 nov. 2007 17:55
  • Consultations : 2273
 

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 :
Code-source php
  1. $a = 5;
  2. $b = 6;
  3. 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 :
Code-source php
  1. 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 :
Code-source php
  1. $a = 5;
  2. $b = 6;
  3. if($a==$b) { echo "Nombres égaux"; }
  4. 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 :
Code-source php
  1. if($a==$b) echo "Nombres égaux";
  2. 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 :
Code-source php
  1. $a = 5;
  2. $b = 6;
  3. if($a>$b) { echo "A est supérieur à B"; }
  4. elseif ($a<$b) { echo "A est inférieur à B"; }
  5. 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 :
Code-source php
  1. switch($choix)
  2. {
  3. 	case 1 : { echo "choix 1"; }break;
  4. 	case 2 : { echo "choix 2"; }break;
  5. 	case 3 : { echo "choix 3"; }break;
  6. 	...
  7. 	default: { echo 'choix par défaut'; }
  8. }
 
ou encore :
Code-source php
  1. switch($choix)
  2. {
  3. 	case "premier" : { echo "choix 1"; }break;
  4. 	case "deuxieme" : { echo "choix 2"; }break;
  5. 	case "troisieme" : { echo "choix 3"; }break;
  6. 	...
  7. 	default: { echo 'choix par défaut'; }
  8. }
 
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 :
Code-source php
  1. $i = 1;
  2. while($i < 10)
  3. {
  4. 	echo "Ligne $i";
  5. 	$i++;
  6. }
 
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 :
Code-source php
  1. $i = 1;
  2. do
  3. {
  4. 	echo "Ligne $i";
  5. 	$i++;
  6. }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 :
Code-source php
  1. for($i = 1; $i < 10; i++)
  2. {
  3. 	echo "Ligne $i";
  4. }
 
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 :
Code-source php
  1. // definissons un tableau
  2. $rubriques=array(1=>accueil, 2=>graphisme, 3=>webmastering);
  3.  
  4. foreach($rubrique as $data)
  5. {
  6. 	echo "Rubrique : $data";
  7. }
 
Cette boucle affichera :
Rubrique : accueil
Rubrique : graphisme
Rubrique : webmastering

Autre exemple avec le même tableau :
Code-source php
  1. foreach($rubrique as $key=>$data)
  2. {
  3. 	echo "Rubrique $key : $data";
  4. }
 
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 :
Code-source php
  1. for($i = 1; $i < 10; i++)
  2. {
  3. 	echo "Ligne $i";
  4. 	if($i == 5) break;
  5. }
 
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 :
Code-source php
  1. // definissons un tableau
  2. $rubriques=array(1=>accueil, 2=>graphisme, 3=>webmastering);
  3.  
  4. while ($rubrique as $key=>$data)
  5. {
  6. 	if ($key % 2 != 0) { continue; }
  7. 	echo $data;
  8. }
 
Cette boucle affichera :
accueil
webmastering
 
  • Rédiger un commentaire
  • Afficher les commentaires (0)
Vous devez être identifié pour poster un commentaire
Aucun commentaire