Menu
Coddy logo textTech

Operator trójargumentowy

Część sekcji Podstawy ścieżki PHP w Coddy. Lekcja 30 z 71.

Gdy masz prostą instrukcję if-else, która tylko przypisuje wartość na podstawie warunku, PHP oferuje krótszy sposób jej zapisania: operator trójargumentowy.

Składnia wykorzystuje ? i :, aby utworzyć zwięzły warunek w jednej linii:

<?php
$age = 20;

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

// To samo z operatorem trójargumentowym
$status = $age >= 18 ? "adult" : "minor";

echo $status; // adult
?>

Struktura jest następująca: condition ? value_if_true : value_if_false.

PHP najpierw oblicza warunek. Jeśli jest prawdziwy, wyrażenie zwraca wartość po ?. Jeśli jest fałszywy, zwraca wartość po :.

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

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

Operator trójargumentowy doskonale nadaje się do prostych przypisań typu albo-albo. W przypadku bardziej złożonej logiki z wieloma warunkami używaj instrukcji if-elseif-else, aby zapewnić lepszą czytelność.

challenge icon

Wyzwanie

Łatwy

Odczytaj z wejścia dwie liczby całkowite: score i passingScore.

Użyj operatora trójargumentowego, aby określić wynik na podstawie poniższych zasad:

  • Jeśli score jest większe lub równe passingScore, wynikiem powinno być Passed
  • W przeciwnym razie wynikiem powinno być Failed

Wypisz wynik w pierwszym wierszu.

Następnie odczytaj z wejścia liczbę całkowitą quantity. Użyj operatora trójargumentowego, aby określić komunikat dotyczący wysyłki:

  • Jeśli quantity jest większe niż 10, komunikatem powinno być Free shipping
  • W przeciwnym razie komunikatem powinno być Standard shipping

Wypisz komunikat dotyczący wysyłki w drugim wierszu.

Przykład:

Jeśli dane wejściowe to 75, 60 i 15, wynik powinien być następujący:

Passed
Free shipping

Jeśli dane wejściowe to 45, 50 i 5, wynik powinien być następujący:

Failed
Standard shipping

Spróbuj swoich sił

<?php
// Wczytaj dane wejściowe
$score = intval(fgets(STDIN));
$passingScore = intval(fgets(STDIN));
$quantity = intval(fgets(STDIN));

// TODO: Napisz swój kod poniżej
// Użyj operatora trójargumentowego, aby określić, czy wynik oznacza zaliczenie, czy niezaliczenie


// Użyj operatora trójargumentowego, aby określić komunikat dotyczący wysyłki


// Wyświetl wyniki
echo $result . "\n";
echo $shippingMessage;
?>
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator PHP online