Menu
Coddy logo textTech

The Ternary Operator

Fait partie de la section Fondamentaux du Journey PHP de Coddy — leçon 30 sur 71.

Lorsque vous avez un simple if-else qui assigne simplement une valeur en fonction d'une condition, PHP offre une façon plus courte de l'écrire : l'opérateur ternaire.

La syntaxe utilise ? et : pour créer une conditionnelle compacte sur une ligne :

<?php
$age = 20;

// Utilisation de if-else
if ($age >= 18) {
    $status = "adult";
} else {
    $status = "minor";
}

// La même chose avec l'opérateur ternaire
$status = $age >= 18 ? "adult" : "minor";

echo $status; // adult
?>

La structure est : condition ? value_if_true : value_if_false.

PHP évalue la condition en premier. Si elle est vraie, l'expression retourne la valeur après ?. Si elle est fausse, elle retourne la valeur après :.

<?php
$score = 45;
$result = $score >= 50 ? "Pass" : "Fail";
echo $result; // Échoué

$isLoggedIn = true;
$greeting = $isLoggedIn ? "Welcome back!" : "Please log in";
echo $greeting; // Bienvenue de retour !
?>

L'opérateur ternaire est parfait pour les affectations simples soit-ou. Pour une logique plus complexe avec plusieurs conditions, préférez les instructions if-elseif-else pour une meilleure lisibilité.

challenge icon

Défi

Facile

Lisez deux entiers depuis l'entrée : un score et un passingScore.

Utilisez l'opérateur ternaire pour déterminer le résultat en fonction de ce qui suit :

  • Si score est supérieur ou égal à passingScore, le résultat devrait être Passed
  • Sinon, le résultat devrait être Failed

Affichez le résultat sur la première ligne.

Ensuite, lisez un entier quantity depuis l'entrée. Utilisez l'opérateur ternaire pour déterminer le message d'expédition :

  • Si quantity est supérieur à 10, le message devrait être Free shipping
  • Sinon, le message devrait être Standard shipping

Affichez le message d'expédition sur la deuxième ligne.

Exemple :

Si les entrées sont 75, 60, et 15, la sortie devrait être :

Passed
Free shipping

Si les entrées sont 45, 50, et 5, la sortie devrait être :

Failed
Standard shipping

Aide-mémoire

L'opérateur ternaire fournit une façon compacte d'écrire des affectations if-else simples sur une seule ligne.

La syntaxe est : condition ? value_if_true : value_if_false

<?php
$age = 20;

// Using if-else
if ($age >= 18) {
    $status = "adult";
} else {
    $status = "minor";
}

// Same thing with ternary operator
$status = $age >= 18 ? "adult" : "minor";

echo $status; // adult
?>

PHP évalue d'abord la condition. Si vrai, il retourne la valeur après ?. Si faux, il retourne la valeur après :.

<?php
$score = 45;
$result = $score >= 50 ? "Pass" : "Fail";
echo $result; // Fail

$isLoggedIn = true;
$greeting = $isLoggedIn ? "Welcome back!" : "Please log in";
echo $greeting; // Welcome back!
?>

Utilisez l'opérateur ternaire pour des affectations simples soit-ou. Pour une logique complexe avec plusieurs conditions, utilisez des instructions if-elseif-else pour une meilleure lisibilité.

Essayez vous-même

<?php
// Lire l'entrée
$score = intval(fgets(STDIN));
$passingScore = intval(fgets(STDIN));
$quantity = intval(fgets(STDIN));

// TODO: Écrivez votre code ci-dessous
// Utilisez l'opérateur ternaire pour déterminer si le score est un succès ou un échec


// Utilisez l'opérateur ternaire pour déterminer le message d'expédition


// Afficher les résultats
echo $result . "\n";
echo $shippingMessage;
?>
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux