Opérateur ternaire en PHP
Supposons que nous ayons le code suivant, vérifiant
si l'utilisateur a déjà 18 ans ou non :
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
Comme vous le voyez, la construction if-else
n'est nécessaire que pour enregistrer une certaine
valeur dans la variable $adult. Pour
de telles tâches, lorsque dans la condition, il ne se passe
que l'enregistrement d'une seule variable, il existe
une solution plus courte via ce qu'on appelle
l'opérateur ternaire.
Sa syntaxe est la suivante :
<?php
variable = condition ? valeur1 : valeur2;
?>
L'opérateur fonctionne ainsi : si la condition est vraie,
alors valeur1 est retournée, dans le cas
contraire - valeur2. Réécrivons
le code présenté au tout début de la leçon avec
l'opérateur ternaire :
<?php
$age = 17;
$adult = $age >= 18 ? true : false;
var_dump($adult);
?>
On peut, d'ailleurs, ne pas enregistrer le résultat dans
une variable, mais l'afficher directement via var_dump :
<?php
$age = 17;
var_dump( $age >= 18 ? true : false );
?>
L'opérateur ternaire ne doit être utilisé que dans les cas les plus simples, car son utilisation rend la compréhension du code difficile.
Soit une variable $num, qui
peut être soit négative, soit positive.
Enregistrez dans la variable $res le nombre
1, si la variable $num est supérieure
ou égale à zéro, et le nombre -1, si la variable
$num est inférieure à zéro.