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

 
 

PHP - Les tests conditionnels - If Else

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

Le if else est un test conditionnel plus élaboré, littéralement il se traduit par : si sinon. Ce test permet d'aligner plusieurs conditions les une derrière les autres. Nous voila au coeur des tests de conditions... en avant !!


Sommaire :

PHP - Les tests conditionnels - If Else

 
PHP - If Else

Dans ce que nous avions vu, si nous voulons afficher 'Vous avez 18 ans' si l'âge est égal à 18 et 'Vous n'avez pas 18 ans' dans le cas contraire, nous devrions procéder comme suit:

.01
.02
.03
.04
.05
.06
.07
.08
  <?php
if( $age == 18 )
  echo
'Vous avez 18 ans';

if(
$age != 18 )
  echo
'Vous n\'avez pas 18 ans';
?>


Il existe cependant une manière plus simple et plus élégante de procéder, il s'agit du if-else, que nous pourrions schématiser de la manière suivante:

si( condition )
première action ;
sinon
seconde action ;


Si condition est vérifiée, première action est exécutée ; dans le cas contraire, c'est seconde action qui est exécutée.

Le code que nous venons de présenter se ré-écrit donc comme suit:
.01
.02
.03
.04
.05
.06
.07
  <?php
if( $age == 18 )
  echo
'Vous avez 18 ans';
else
  echo
'Vous n\'avez pas 18 ans';
?>

Ce code, en plus d'être plus court, plus lisible et présentant une maintenance facilitée (si l'on veut changer 18 en 19, on ne modifie qu'un seul endroit du code -oui, je vous l'accorde, les textes affichés n'auraient plus aucun sens, mais c'est pour l'exemple ;) - ), présente, un autre avantage, il est plus rapide. En effet, dans la première version, si la première condition est vérifiée (donc si $age vaut 18), le second test ($age != 18) sera quand même réalisé, tandis que dans le cas du if-else, si la condition du if est réalisée, l'exécution du code reprend automatiquement après le else... Ce gain de temps est certes minime, mais dans de gros projets, il peut être moins négligeable.


L'opérateur ternaire ?


Parlons un peu de l'opérateur ternaire '?', qui est une nouveauté puisque nous n'avons parlé jusqu'ici que d'opérateurs unaires et binaires et qu'il existe que très peu d'opérateurs ternaires.

Rapel des termes : (unaire, binaire et ternaire)

- un opérateur unaire est un opérateur qui ne prend qu'un seul opérande (paramètre, si vous voulez), par exemple il existe un - unaire: -5 (le moins devant le 5 n'est pas un moins de soustraction, mais un moins unaire)
- les opérateurs binaires, du coup, sont tous ceux qui prennent deux opérandes, il s'agit de la majorité des opérateurs: + * / && || == < > etc
- et nous voici donc avec notre opérateur qui va prendre trois opérandes! :)

Cet opérateur permettra d'écrire des version raccourcies de blocs d'instructions dans le genre:
.01
.02
.03
.04
.05
.06
.07
.08
.09
  <?php
$test
= 2;

if(
$test == 2 )
 
$var = 1;
else
 
$var = 0;
?>

Ce code pourrait se ré-écrire très facilement comme ceci:
.01
.02
.03
.04
  <?php
$var
= $test == 2 ? 1 : 0;
?>

Il produit exactement la même chose que le test conditionel clasique if-else, pour plus d'infos, voyez le cours sur les modulos qui utilise l'opérateur ternaire ? avec des exemples concrets.



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