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:
-
span class= »st0″>’fr’){
-
$message = ‘Je vous parle en francais’‘I don\’t speak you in french’
On aura:
-
$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-
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:
-
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!
-