L’opérateur ternaire, plus que de l’affectation

Bonjour à tous,

Tout d’abord petit cours de rattrapage:
L’opérateur ternaire (:?) permet d’effectuer facilement un test dual pour l’affectation d’une donnée.

Ainsi plutot que d’avoir:

  1. span class= »st0″>’fr’){
  2.     $message = ‘Je vous parle en francais’‘I don\’t speak you in french’

On aura:

  1. $message = ($lang == ‘fr’) ? ‘Je vous parle en francais’ : ‘I don\’t speak you in french’;

Ce qui fait moins de ligne de code inutile non?
La structure est comme telle:

$variable = (condition) ? $value_if_true : $value_if_false;

Mais voilà comme indiqué dans le titre, on peut aller plus loin.
En effet, imaginez-vous écrire un longue chaine comme

  1. span class= »st0″>’…blabla blabla pour une somme de ‘.$prix.‘ TVAC et blabla blabla…’;

Mais que vous vous rendiez compte que ce prix peut etre TVAC ou HTVA selon le cas dont la valeur de vérité est stocké dans $tva.
Vous pouvez soit refaire faire un test en dupliquant la chaine dans le if/else, soit splitter la chaine et faire un test if/else au milieu.

Ou bien encore… Utiliser l’opérateur ternaire comme ceci:

  1. span class= »st0″>’…blabla blabla pour une somme de ‘.$prix.‘ ‘‘TVAC’:‘HTVA’).‘ et blabla blabla…’;

Ce qui nous encombre moins et qui est plus facile à mettre à jour!