Der ternäre 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 shippingProbier 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
4Vergleichs- und logische Operatoren
VergleichsoperatorenGleichheit und IdentitätLogische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache Logik2Variablen und Datentypen
ZahlenStrings und AnführungszeichenBoolesche WerteNamenskonventionenRückblick – VariableninitialisierungLeere VariablenString-VerkettungBenutzereingabenIn andere Datentypen umwandeln5Bedingte Logik
If-AnweisungIf - ElseDer ternäre OperatorNull-Koaleszenz-OperatorSwitch-AnweisungZusammenfassung – Entscheidungen treffen8Schleifen
For-SchleifeWhile-SchleifeForeach-SchleifeSchleifen mit Schlüsseln und WertenBreak-AnweisungContinue-AnweisungRückblick – Iterieren über Daten11Abschließende Herausforderungen
Herausforderung – FakultätsberechnungHerausforderung – Längstes WortHerausforderung – Vokalzähler3Grundlegende Operatoren
Arithmetische OperatorenModulo-OperatorPotenzierungsoperatorZusammengesetzte ZuweisungInkrement/DekrementOperatorrangfolgeRückblick – Einfache BerechnungenString-OperatorenÜbe selbstständig: Online-PHP-Compiler