Menu
Coddy logo textTech

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.

challenge icon

Aufgabe

Einfach

Lesen 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 score größer oder gleich passingScore ist, sollte das Ergebnis Passed sein
  • Ansonsten sollte das Ergebnis Failed sein

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 quantity größer als 10 ist, sollte die Nachricht Free shipping sein
  • Ansonsten sollte die Nachricht Standard shipping sein

Geben Sie die Versandnachricht in der zweiten Zeile aus.

Beispiel:

Wenn die Eingaben 75, 60 und 15 sind, sollte die Ausgabe sein:

Passed
Free shipping

Wenn die Eingaben 45, 50 und 5 sind, sollte die Ausgabe sein:

Failed
Standard shipping

Spickzettel

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;
?>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen