Définitions

Les structures de contrôle permettent de répéter certaines actions ou de soumettre des exécutions à des conditions.

Toutes ces structures reposent sur un test. C'est à dire sur une expression dont l'évaluation renvoie un booléen, pouvant combiner booléean, opérateur booléen, appels de fonctions, etc.

Conditions

if

if(){}

Les instructions entre accolades ne sont exécutées que si la condition entre parenthèse est vérifiée.
$var = 25;
if($var > 10) {
	echo "Supérieur";
}
			

else{}

Si la condition du if précédent n'est pas vérifiée, alors les instructions entre accolades suivant le else sont exécutées :
$var = 5;
if($var > 10) {
	echo "Supérieur";
} else {
	echo "Inférieur";
}
			

elseif(){}

C'est une variante des instructions précédentes, permettant d'enchaîner les instructions if .
$var = -1;
if($var > 10) {
	echo "Supérieur";
} elseif($var < 0) {
	echo "Négatif"; // Evalué seulement si le premier if est faux
} else {
	echo "Inférieur"; // Evalué si les autres conditions sont fausses
}
			

Switch

Permet d'éviter plusieurs if imbriqués en réalisant plusieurs tests sur une même variable. Le test est réalisé sur la valeur entre parenthèses. Le mot clé switch identifie cette structure de contrôle.

Les tests case sont évaluées une à une. Si la valeur correspondont à un case , les instructions correspondantes sont exécutées. L'évaluation des case continue jusqu'à la fin du switch ou la présence d'un break .

Si aucun test n'est vérifié, la suite d'instructions suivant default est exécutée

switch($nombre) {
  case 1:
    echo "un";
    break; // sans break, on évalue aussi la suite
  case 2:
    echo "deux";
    break;
  case 3:
    echo "trois";
    break;
  default:
    echo "default";
}
			

Boucles

Boucles while

while

Les instructions contenues dans une boucle while sont exécutées tant que le condition entre parenthèse est vérifiée.
$i = 0;
while($i < 10) {
  echo $i++ . "\n";
} // affiche les dix chiffres
			

do while

Le principe est identique aux boucle while . La différence réside dans le fait que le test n'est effectué qu'après la première instruction de la boucle (et non plus avant l'entrée dans la boucle).
$i = 0;
do {
  echo $i++ . "\n";
} while($i < 10) // affiche les dix chiffres
			

Boucle for

Une boucle for a la syntaxe suivante :
for(expression; condition; expression2) {
// instructions
}
			
expression
Exécutée à l'entrée dans la boucle, peut par exmple permettre d'initailiser les variables nécessaires
condition
Test effectué à chaque passage dans la boucle. Si le test est vérifié, les instructions sont exécutées
expression2
Exécutée à la sortie de la boucle, généralement pour modifier la valeur des variables utilisées dans la condition
Exemple :
for($i=0; $i<10; $i++)
{
	echo $i . "\n";
}  // affiche les dix chiffres
			

Boucle foreach

Permet de parcourir les éléments d'un tableau.

Tableau

foreach($tableau as $valeur) {
// instructions
} // parcourt les valeurs du tableau
			
La variable $valeur prend successivement toutes les valeurs du tableau $tableau (dans l'ordre du tableau).

Tableau associatif

foreach($tableau as $cle => $valeur) {
// instructions
} // parcourt les clés du tableau associatif
			
La variable $cle prend successivement toutes les clés du tableau $tableau

Exercices