Tests conditionnels - If Else

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 cœur des tests de conditions... en avant !!
Sommaire :
If Else
Pour commencer nous allons passer directement à un cas pratique.

Énoncé :
- Si l'age est à 25: nous affichons "Vous avez 25 ans"
- Si l'age n'est pas à 25 : nous affichons "Vous n'avez pas 25 ans"

en PHP nous allons procéder comme suit :

.01
.02
.03
.04
.05
.06
.07
.08
.09
 
<?php

   
if( $age == 25 )
      echo
'Vous avez 25 ans';

    if(
$age != 25 )
      echo
'Vous n'avez pas 25 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 la condition est vérifiée, la première action est exécutée; dans le cas contraire, c'est la 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 == 25 )
  echo
'Vous avez 25 ans';
else
  echo
'Vous n\'avez pas 25 ans';
?>


Ce code, en plus d'être plus court, plus lisible et présentant une maintenance facilitée (si l'on veut changer 25 en 26, on ne modifie qu'un seul endroit du code. A noter que dans la première version, si la première condition est vérifiée (donc si $age vaut 25), le second test ($age != 25) 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.

Rappel 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

Revenons à notre opérateur ternaire '?' qui va prendre trois opérandes d'un coup!

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

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


Avec l'opérateur ternaire '?' le code peut 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.