The Ternary Operator
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy — Lektion 30 von 71.
Wenn Sie eine einfache if-else haben, die nur einen Wert basierend auf einer Bedingung zuweist, bietet PHP eine kürzere Möglichkeit, sie zu schreiben: den ternären Operator.
Die Syntax verwendet ? und :, um eine kompakte einzeilige Bedingung zu erstellen:
<?php
$age = 20;
// Verwendung von if-else
if ($age >= 18) {
$status = "adult";
} else {
$status = "minor";
}
// Dasselbe mit dem Ternär-Operator
$status = $age >= 18 ? "adult" : "minor";
echo $status; // adult
?>Die Struktur ist: condition ? value_if_true : value_if_false.
PHP bewertet die Bedingung zuerst. Wenn sie wahr ist, gibt der Ausdruck den Wert nach ? zurück. Wenn sie falsch ist, gibt er den Wert nach : zurück.
<?php
$score = 45;
$result = $score >= 50 ? "Pass" : "Fail";
echo $result; // Nicht bestanden
$isLoggedIn = true;
$greeting = $isLoggedIn ? "Welcome back!" : "Please log in";
echo $greeting; // Willkommen zurück!
?>Der ternäre Operator ist perfekt für einfache Entweder-Oder-Zuweisungen. Für komplexere Logik mit mehreren Bedingungen bleiben Sie bei if-elseif-else-Anweisungen für eine bessere Lesbarkeit.
Aufgabe
EinfachLesen Sie zwei Ganzzahlen von der Eingabe: eine score und eine passingScore.
Verwenden Sie den ternären Operator, um das Ergebnis basierend auf Folgendem zu bestimmen:
- Wenn
scoregrößer oder gleichpassingScoreist, sollte das ErgebnisPassedsein - Ansonsten sollte das Ergebnis
Failedsein
Geben Sie das Ergebnis in der ersten Zeile aus.
Dann lesen Sie eine Ganzzahl quantity von der Eingabe. Verwenden Sie den ternären Operator, um die Versandnachricht zu bestimmen:
- Wenn
quantitygrößer als 10 ist, sollte die NachrichtFree shippingsein - Ansonsten sollte die Nachricht
Standard shippingsein
Geben Sie die Versandnachricht in der zweiten Zeile aus.
Beispiel:
Wenn die Eingaben 75, 60 und 15 sind, sollte die Ausgabe sein:
Passed
Free shippingWenn die Eingaben 45, 50 und 5 sind, sollte die Ausgabe sein:
Failed
Standard shippingSpickzettel
Der ternäre Operator bietet eine kompakte Möglichkeit, einfache if-else-Zuweisungen in einer einzigen Zeile zu schreiben.
Die Syntax lautet: 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 bewertet die Bedingung zunächst. Wenn sie wahr ist, gibt es den Wert nach ? zurück. Wenn sie falsch ist, gibt es den Wert nach : zurück.
<?php
$score = 45;
$result = $score >= 50 ? "Pass" : "Fail";
echo $result; // Fail
$isLoggedIn = true;
$greeting = $isLoggedIn ? "Welcome back!" : "Please log in";
echo $greeting; // Welcome back!
?>Verwenden Sie den ternären Operator für einfache entweder-oder-Zuweisungen. Für komplexe Logik mit mehreren Bedingungen verwenden Sie if-elseif-else-Anweisungen für bessere Lesbarkeit.
Probier es selbst
<?php
// Eingabe lesen
$score = intval(fgets(STDIN));
$passingScore = intval(fgets(STDIN));
$quantity = intval(fgets(STDIN));
// TODO: Schreiben Sie Ihren Code unten
// Verwenden Sie den ternären Operator, um zu bestimmen, ob die Punktzahl bestanden oder durchgefallen ist
// Verwenden Sie den ternären Operator, um die Versandnachricht zu bestimmen
// Ergebnisse ausgeben
echo $result . "\n";
echo $shippingMessage;
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
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