Les structures de contrôle en PHP 8
#1 La structure if
La structure de contrôle if
est une structure qui permet d'exécuter du code selon l'évaluation d'une condition. On appelle cela une structure conditionnelle.
Ci-dessous l'instruction echo "Bonjour"
sera exécutée si la variable condition
est évaluée à true
sinon elle ne sera pas exécutée.
Vous pouvez ajouter un else
et une instruction qui sera exécutée si la condition est évaluée à false
.
Bien sûr, vous pouvez avoir besoin de programmer plusieurs instructions. Dans ce cas, il faut les regrouper dans un bloc en utilisant des accolades.
Maintenant, on va voir qu'il est possible de travailler avec plusieurs conditions.
Ci-dessous, l'instruction echo "Bienvenue\n"
est exécutée, car condition1
est false
et condition2
est true
. Si les deux conditions sont false
, alors ce sont les instructions du else
qui sont exécutées.
#2 La structure switch
Ci-dessous, la structure switch
permet d'évaluer la valeur de $val
et d'aller exécuter le code qui correspond à cette valeur.
- Si
$val
vaut1
alors, vous exécutez leecho "Je suis dans le 1"
. Attention, après avoir exécuté ceecho
, il faut mettre unbreak
si vous ne voulez pas exécuter ledefault
. - Si
$val
vaut une autre valeur que le1
alors, vous exécutez ledefault
.
Ci-dessous, je complète l'exemple pour mieux décrire le role du break
. Lorsque $val
vaut 2
alors le echo "Je suis dans le 2\n";
est exécuté puis le echo "Je suis dans le 3\n";
est exécuté à son tour. Pour $val
égal à 1
ou 3
, le echo
est exécuté puis le break
provoque la sortie du switch
. De même, le passage dans default
provoque la sortie naturelle du switch
.
#3 Boucle while et do while
Dans l'exemple ci-dessous, je vais boucler tant que la condition ($a < 5)
est true
, c'est-à-dire que je vais boucler 5
fois pour les valeurs de $a
allant de 0
à 4
incluses.
Il arrive que l'on ait besoin de faire un premier tour de boucle avant de tester une condition. Dans l'exemple ci-dessous, on fera toujours un passage dans la boucle quelle que soit la valeur tirée au sort.
#4 La boucle for
Dans l'exemple ci-dessous, je parcours la boucle 5
fois, pour des valeurs de $i
allant de 0
à 4
.
C'est la variable $i
qui gère l'exécution de la boucle :
- L'instruction
$i = 0
est exécutée une seule fois, au premier tour de boucle. - Ensuite, la condition
$i < 5
est évaluée. Cette condition est évaluée avant chaque tour de boucle. Si la condition est true, le tour de boucle est exécuté. Si la condition est false, la boucle est terminée. $i++
est exécuté à la fin de chaque tour de boucle.
A remarquer que $i
existe en dehors de la boucle.
Si vous voulez, vous pouvez sauter un ou bien plusieurs tours de boucle en plaçant une instruction continue
.
Si vous voulez, vous pouvez provoquer la sortie de la boucle, avant que la condition $i < 5
devienne false
. Pour cela, vous pouvez utiliser une condition suivie de l'instruction break
. Ci-dessous, pour $i
égal à 2
le break
sera exécuté et la boucle prendra fin.
#5 L'expression match
La version 8 est dotée d'une nouvelle structure de contrôle. Dans la documentation, cette structure est appelée l'expression match. En fait, ce match
fonctionne plutôt comme un opérateur.
Ci-dessous, vous avez un match
qui va évaluer l'expression rand(0,1)
.
- Si l'expression vaut
0
, alors c'est la chaîne"C'est Pile"
qui est retournée. - Si l'expression vaut
1
, alors c'est la chaîne"C'est Face"
qui est retournée.
Ici, il n'y a que deux possibilités. Le 0
et le 1
. Mais il pourrait y en avoir plus que ça.