Les Structures de contrôles

Définitions

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

<? php
  • $var=1; //ici la variable à tester
  • IF($var==1) //entre parenthèse la condition
    • { //Début du jeu d’instruction si le test est vrai
    • ECHO "le test est vrai" ;
    • } //Fin du jeu d’instruction si le test est vrai
    • ELSE{ //Début du jeu d’instruction si le test est faux
    • ECHO "Le test est faux" ;
    • } //Fin du jeu d’instructions si le test est faux Il est possible de d’enchaîner plusieurs tests les un à la suite des autres avec le mot clé ELSEIF (SINON SI en anglais)
    • IF($var == 1) //entre parenthèse la condition
    • { //Début du jeu d’instruction si la variable saisie vaut 1
    • ECHO "le variable vaut UN" ;
    • } //Fin du jeu d’instruction
    • ELSEIF($var == 2) { //Début du jeu d’instruction si la variable saisie vaut 2
    • ECHO "le variable vaut DEUX" ;
    }
?>

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 !==
Nota : certaines égalités peuvent être implicites
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)

La logique ET & OU

Il est possible d’associer plusieurs conditions ensemble pour former un test logique plus complexe Prenons un exemple simple

<? php
  • $var=1;
  • $v2=TRUE ;
  • IF($var == 1)
  • {
    • IF($v2 == TRUE)
      • ECHO "le test est vrai" ;
    • }
?>

On peut écrire cet exemple comme suit

<? php
  • $var=1;
  • $v2=TRUE;
  • IF($var==1 && $v2==TRUE) // ou IF($var == 1 && $v2)
    • ECHO "le test est vrai" ;
?>

Le ET logique

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)

IF(10<15 && 10>=5)

Le OU logique

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

IF(10>15||10<20)

Les parenthèses

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

L’instruction SELON

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

$i=3;
switch($i){
Case 0:
Echo "zero" ;
Break ;
Case 1:
Echo "un" ;
Break ;
Case 2:
Echo "deux" ;
Break ;
Case 3:
Echo "trois" ;
Break ;
}

Le mot clef break permet de sortir du switch et ainsi n’exécutera pas les instructions suivantes.