Vous êtes ici Tutoriel > Les tests conditionnels - If - Else if - Else

 
 

PHP - Les tests conditionnels - If - Else if - Else

Tutoriel écrit par R@f
Écrit le 19 Jan 2007

Le If - Else if - Else est le test conditionnel le plus elaboré, littéralement il se traduit par : si - sinon si -. Ce test va nous permettre de jongler avec nos conditions de manière souple et impitoyable !! Restons maîtres des conditions que nous voulons imposer à l'utilisation du script. Et c'est reparti !!


Sommaire :


PHP - Les tests conditionnels - If - Else if - Else

 
PHP - If - Else if - Else

La structure if-else, comme nous l'avons vu au paragraphe précédant, permet d'effectuer deux actions: l'une en cas de validité du test et l'autre dans le cas contraire. Nous allons compléxifier un petit peu tout -pas trop, rassurez-vous-, en étudiant la structure if-else if-else, qui permet plusieurs tests. Comme pour les deux autres structures, présentons la pour commencer en français:
if( condition1 )
action1 ;
else if( condition 2 )
action 2 ;
else if( condition 3 )
action 3;
else
action par défaut;

L'exécution se fait de la manière suivante: si condition1 est vérifiée, action1 est exécutée ; sinon, si condition2 est vérifiée, action2 est exécutée ; idem pour condition 3 ; pour terminer, si aucune des 3 condition n'a été vérifiée, l'action par défaut est exécutée.

Dans cette structure, ce qui est très utile, c'est que le nombre de 'else if' n'est pas limité, vous pouvez en aligner autant que vous voulez!

Voyons un exemple:

.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
  <?php
if( $age < 14 ) // $si $age plus petit que < 14
 
echo 'Vous avez moins de 14 ans';
else if(
$age <= 18 ) // sinon, si $age plus petit ou égal à 18
 
echo 'Vous avez entre 14 et 18 ans';
else if(
$age <= 25 ) // sinon, si $age plus petit ou égal à 25
 
echo 'Vous avez entre 19 et 25 ans';
else if(
$age <= 64 ) // sinon, si $age plus petit ou égal à 64
 
echo 'Vous avez entre 26 et 64 ans';
else
// sinon
 
echo 'Vous avez plus de 64 ans!';
?>
La remarque que j'avais faite par rapport à la différence entre la vitesse d'exécution de deux if et d'un if-else est valable ici: si la validité d'un test est vérifiée, tous les tests suivants ne seront pas effectués.


PHP - Combinaisons de conditions ( && et || )

Dans tous les tests que nous avons faits, nous n'avons vérifié qu'une seule condition, mais il est possible d'en combiner plusieurs à l'aide des opérateurs && et || qui représentent, respectivement, ET et OU.
Voir http://www.phpsources.org/operateurs-php.htm
Ainsi, si l'on veut vérifier si la valeur de la variable $age est plus grande ou égal à 18 mais plus petite que 25, nous pouvons faire le test comme ceci:
.01
.02
.03
.04
.05
  <?php
if( $age >= 18 && $age < 25 ) // si( $age plus grand que 18 ET $age plus petit que 25 )
 
echo 'Vous avez entre 18 et 24 ans';
?>
L'opérateur traduisant le OU fonctionne de la même manière:
.01
.02
.03
.04
.05
  <?php
if( $age == 18 || $age == 19 ) // si $age est égal à 18 OU si $age est égal à 19
 
echo 'Vous avez 18 ou 19 ans';
?>
Remarquez qu'on aurait aussi pu écrire:
.01
.02
.03
.04
.05
.06
  <?php
if( $age >= 18 && $age <= 19 )
// si $age est plus grand ou égal à 18 ET si $age plus petit ou égal à 19
 
echo 'Vous avez 18 ou 19 ans';
?>

Il est possible de combiner les deux opérateur d'infinies façons, en voici une de plus (les parenthèses permettent de définir la hierarchie des tests):
.01
.02
.03
.04
.05
  <?php
if( $age == 18 || ( $age >= 25 && $age <= 30 ) )
  echo
'Vous avez 18 ans ou bien votre age est compris entre 25 et 30 ans...';
?>

PHP - Imbrications de tests.

Il est tout à fait possible d'imbriquer les tests, c'est à dire de mettre un test dans un autre...
.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
  <?php
$var1
= 5;
$var2 = 10;

if(
$var1 == 5 )
{
  if(
$var2 > 8 )
    echo
'$var1 vaut 5 et $var2 est plus grand que 8';
  else
    echo
'$var1 vaut 5 mais $var2 n\'est pas plus grand que 8';
}
else
{
  if(
$var2 < 10 )
    echo
'$var1 est différent de 5 et $var2 est plus petit que 10';
  else
    echo
'$var1 est différent de 5 et $var2 n\'est pas plus petit que 10';
}
?>


© Copyright: Les tutoriels sont exclusifs et sont la propriétés des auteurs.
    Reproduction interdite.