155 votes

Comment remplacer l'instruction "if" par un opérateur ternaire ( ? : ) ?

Sur la base des exemples de cette page, je voulais convertir l'énoncé if ci-dessous en un opérateur ternaire.

Code de travail utilisant l'instruction if :

if (!empty($address['street2'])) echo $address['street2'].'<br />';

Je ne sais pas comment cela devrait être écrit en utilisant un opérateur ternaire de sorte que le echo ne fonctionne que si street2 existe dans le tableau et n'est pas une chaîne vide.

54voto

Rabin Lama Dong Points 1030

PHP 7+

A partir de PHP 7, cette tâche peut être effectuée simplement en utilisant l'opérateur de coalescence Null comme ceci :

echo $address['street2'] ?? 'Empty';

31voto

Arun Yokesh Points 938

Vrai de base/ Fausse déclaration

$is_admin = ($user['permissions'] == 'admin' ? true : false);

Message de bienvenue conditionnel

echo 'Welcome '.($user['is_logged_in'] ? $user['first_name'] : 'Guest').'!';

Message des éléments conditionnels

echo 'Your cart contains '.$num_items.' item'.($num_items != 1 ? 's' : '').'.';

réf : https://davidwalsh.name/php-ternary-examples

22voto

Keyboard ninja Points 565

C'est l'opérateur Ternary alias opérateur Elvis (google it :P) que vous recherchez.

echo $address['street2'] ?: 'Empty'; 

Il retourne la valeur de la variable ou par défaut si la variable est vide.

14voto

adrianbanks Points 36858

L'opérateur ternaire n'est qu'un raccourci pour et si/sinon bloquer. Votre code de travail n'a pas d'autre condition, il n'est donc pas adapté à cela.

L'exemple suivant fonctionnera :

echo empty($address['street2']) ? 'empty' : 'not empty';

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X