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é.
Défi
FacileLisez 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
scoreest supérieur ou égal àpassingScore, le résultat devrait êtrePassed - 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
quantityest supérieur à 10, le message devrait êtreFree 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 shippingSi les entrées sont 45, 50, et 5, la sortie devrait être :
Failed
Standard shippingAide-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;
?>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
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators