Menu
Coddy logo textTech

The Ternary Operator

Часть раздела Основы путешествия по PHP на Coddy — урок 30 из 71.

Когда у вас есть простой if-else, который просто присваивает значение на основе условия, PHP предлагает более короткий способ его записи: тернарный оператор.

Синтаксис использует ? и : для создания компактного однострочного условного выражения:

<?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
?>

Структура такая: condition ? value_if_true : value_if_false.

PHP сначала вычисляет условие. Если оно истинно, выражение возвращает значение после ?. Если ложно, возвращает значение после :.

<?php
$score = 45;
$result = $score >= 50 ? "Pass" : "Fail";
echo $result; // Не сдал

$isLoggedIn = true;
$greeting = $isLoggedIn ? "Welcome back!" : "Please log in";
echo $greeting; // Добро пожаловать обратно!
?>

Тернарный оператор идеален для простых присваиваний либо-или. Для более сложной логики с несколькими условиями придерживайтесь инструкций if-elseif-else для лучшей читаемости.

challenge icon

Задание

Легко

Прочитайте два целых числа из ввода: score и passingScore.

Используйте тернарный оператор, чтобы определить результат на основе следующего:

  • Если score больше или равно passingScore, результат должен быть Passed
  • Иначе результат должен быть Failed

Выведите результат на первой строке.

Затем прочитайте целое число quantity из ввода. Используйте тернарный оператор, чтобы определить сообщение о доставке:

  • Если quantity больше 10, сообщение должно быть Free shipping
  • Иначе сообщение должно быть Standard shipping

Выведите сообщение о доставке на второй строке.

Пример:

Если входные данные 75, 60 и 15, вывод должен быть:

Passed
Free shipping

Если входные данные 45, 50 и 5, вывод должен быть:

Failed
Standard shipping

Шпаргалка

Тернарный оператор предоставляет компактный способ записи простых условных присваиваний if-else в одной строке.

Синтаксис: 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 сначала вычисляет условие. Если оно истинно, возвращается значение после ?. Если ложно, возвращается значение после :.

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

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

Используйте тернарный оператор для простых присваиваний с выбором из двух вариантов. Для сложной логики с несколькими условиями используйте конструкции if-elseif-else для лучшей читаемости.

Попробуйте сами

<?php
// Считываем ввод
$score = intval(fgets(STDIN));
$passingScore = intval(fgets(STDIN));
$quantity = intval(fgets(STDIN));

// TODO: Напишите свой код ниже
// Используйте тернарный оператор, чтобы определить, является ли балл проходным или провальным


// Используйте тернарный оператор для определения сообщения о доставке


// Вывод результатов
echo $result . "\n";
echo $shippingMessage;
?>
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы