Aussi appelés tests conditionnels, les structures de contrôles sont des structures algorithmiques qui visent à assurer le niveau logique d’un programme PHP. Elles sont introduites pas le mot clé IF (SI en anglais) et retourne systématiquement la valeur TRUE (vrai) ou FALSE (faux) Les tests binaires
Pour réaliser ces tests nous utiliserons le mot clé IF avec entre parenthèses le test en lui-même si la condition se vérifie, alors code sera exécuté. Comme il s’agit d’une structure, il n’est pas nécessaire d’utiliser de point-virgule en fin de ligne
Pour réaliser des tests nous allons utiliser des opérateurs logiques. A la différence des opérateurs arithmétiques, ils n’ont aucune incidence sur les variables.
| test d'égalité | Est égal | == |
|---|---|---|
| Est strictement égal | === | |
| Test d’infériorité absolue | Est strictement inférieur | < |
| Test de supériorité absolue | Est strictement supérieur | > |
| Test d’infériorité relative | Est inférieur ou égal | <= |
| Test de supériorité relative | Est supérieur ou égale | >= |
| Négation | NON | ! |
| test de différence | Est différent de | != |
| Est strictement différnt de | !== |
| Une variable booléenne est toujours considérée comme vrai | |
|---|---|
| $b=TRUE ; | $b=TRUE ; |
| IF($b == TRUE) / IF($b == FALSE) | IF($b) / IF( !$b) |
| Une chaîne de caractères n’est jamais vide | |
| $str="UNE CHAINE" ; | $str="UNE CHAINE" ; |
| IF($str !="") | IF($str) |
| Une variable numérique n'est jamais neutre | |
| $$num=1 ; | $$num=1 ; |
| IF | IF($str) |
Il est possible d’associer plusieurs conditions ensemble pour former un test logique plus complexe Prenons un exemple simple
On peut écrire cet exemple comme suit
Symbolisé par && il permet tester si deux conditions sont vrais toutes les deux 10 est inférieur à 15 ET supérieur ou égale à 5 (10 est compris entre 5 ET 15)
Symbolisé par || il permet de tester si une ou les deux conditions sont vrais 10 n’est pas supérieur à 15 mais inférieur à 20
Elles permettent de combiner les conditions de sorte que leur résultat respectif fasse parti d’une logique plus grande Ainsi cette expression IF( (15<20 || 10 >15) && 1==1) sera vrai
Car on test d’abord 15 est inférieur à 20 OU si 10 est supérieur à 15
Ce qui est retourne TRUE (15 est inférieur à 20)
ET 1 est égal à 1 retourne TRUE
Donc on a TRUE && TRUE → VRAI
Cette expression IF( (15<20 || 10 >15) && 1>3) sera fausse
Car on test d’abord si 15 est inférieur à 20 OU si 10 est supérieur à 15
Ce qui retourne TRUE (15 est inférieur à 20)
ET 1 est n’est pas supérieur à 3 (FALSE)
Donc on a TRUE && FALSE → FAUX
Cette expression IF( (15<20 || 10 >15) || 1>3) sera vrai
Car on test d’abord si 15 est inférieur à 20 OU si 10 est supérieur à 15
Ce qui est vrai retourne TRUE (15 est inférieur à 20)
OU 1 est n’est pas supérieur à 3 (FALSE)
Donc on a TRUE || FALSE → VRAI
Il s’agit d’une instruction qui permet de vérifier plusieurs valeurs qu’une variable. Elle correspond au jeu d’instruction if{ …} elseif { … }. La variable est placée entre parenthèse après le switch et chacune des valeurs sera testées avec l’instruction case
Le mot clef break permet de sortir du switch et ainsi n’exécutera pas les instructions suivantes.