L'opérateur ternaire en PHP

Décembre 2012

Si vous programmez en PHP, vous avez l'habitude d'utiliser un certain nombre d'opérateurs très courant comme les opérateurs arithmétiques habituels (addition, soustraction, multiplication, division, modulo...) ex: $a + $b. Il y a aussi les opérateurs de comparaison (==, !=...) et l'opérateur de concaténation (.).

Tous ces opérateurs ont un point commun : ils s'utilisent avec un ou deux membres (aussi appelé opérande).

Mais il existe un opérateur méconnu des débutants, pourtant très pratique : l'opérateur ternaire.

À quoi sert l'opérateur ternaire ?

Il permet de retourner une valeur parmi 2 valeurs, en fonction d'une condition.

Voilà un petit exemple de code qui récupère des champs de formulaire dans des variables, en leur affectant la valeur null quand le champ n'existe pas (pour éviter une erreur Notice) :

<?php
if( isset($_POST['login']) ){
	$login = $_POST['login'];
} else {
	$login = null;
}

if( isset($_POST['password']) ){
	$password = $_POST['password'];
} else {
	$password = null;
}
?>

Ce code fonctionne parfaitement, mais il ne fait pas grand-chose et pourtant il occupe quand même 11 lignes de code (5 lignes pour chaque champ).

Et bien l'opérateur ternaire permet de faire la même chose avec simplement 2 lignes :

<?php
$login    = isset($_POST['login'])    ? $_POST['login']    : null;
$password = isset($_POST['password']) ? $_POST['password'] : null;
?>

Comment ça marche ?

C'est très simple, comme vous pouvez le voir, cet opérateur fonctionne avec 3 membres (d'où le nom).

Le premier opérande est la condition. Cela peut être soit une variable soit une fonction, dont le retour peut être évaluée comme un booléen (true ou false) après le transtypage.

Si vous voulez en savoir plus c'est par ici : réafficher une colonne masquée dans excel.

Remarque : en logique combinatoire, on appelle ce genre de fonction qui ne retourne que true ou false un prédicat.

Si la condition vaut true, alors l'opérateur va retourner la valeur du second opérande. Sinon, l'opérateur retournera la valeur du 3éme opérande.

La condition est séparée du second opérande par un ?, et le second opérande et séparé du 3éme par un :.

Au final, voilà la forme "générique" d'une ternaire :

condition ? value : defaultValue

Allez donc jeter un oeil sur cette page : texte 3d riche en couleurs.

1 commentaire :
commentaire n°3557 par élève
élève lundi 11 décembre 2017, 21:00
bonjour à vous; excusé moi mais je me demande comment il faut faire un algorithme avec avec un minimum et maximum avec l'opérateur ternaire. j'ai besoin d'explication la dessus merci de nous répondre
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré