Menu
Coddy logo textTech

Логические операторы. Часть 1

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

Логические операторы позволяют объединять несколько логических выражений в одно. Это необходимо, когда нужно одновременно проверить несколько условий.

Оператор AND (&&) возвращает true только тогда, когда both условия истинны:

<?php
$age = 25;
$hasLicense = true;

$canDrive = $age >= 18 && $hasLicense;
var_dump($canDrive); // bool(true)

$age = 16;
$canDrive = $age >= 18 && $hasLicense;
var_dump($canDrive); // bool(false) - условие возраста не выполняется
?>

Оператор OR (||) возвращает true, когда истинно хотя бы одно условие:

<?php
$isWeekend = true;
$isHoliday = false;

$dayOff = $isWeekend || $isHoliday;
var_dump($dayOff); // bool(true) - weekend равен true

$isWeekend = false;
$dayOff = $isWeekend || $isHoliday;
var_dump($dayOff); // bool(false) - оба равны false
?>

Думай о && как о «оба должны быть истинными», а о || — как о «по крайней мере одно должно быть истинным». На следующем уроке ты узнаешь об операторе NOT и о том, как объединять несколько логических операторов.

challenge icon

Задание

Легко

Прочитайте четыре значения из input: целое число age, строку hasTicket (либо "true", либо "false"), строку isMember (либо "true", либо "false") и строку hasInvitation (либо "true", либо "false").

Преобразуйте строковые values в логические значения, сравнив их с "true".

Вычислите следующие два условия и выведите результат каждого с помощью var_dump(), каждый с новой строки:

  1. Проверьте, может ли person enter event: ему должно быть least 18 лет AND у него должен быть билет
  2. Проверьте, получает ли person бесплатный вход: он должен быть member OR иметь invitation

Пример:

Если input имеют значения 25, true, false и true, Output должен быть таким:

bool(true)
bool(true)

Объяснение:

  • 25 >= 18 AND hasTicket имеет значение true → true
  • isMember имеет значение false OR hasInvitation имеет значение true → true

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

<?php
// Прочитать входные значения
$age = intval(fgets(STDIN));
$hasTicket = trim(fgets(STDIN));
$isMember = trim(fgets(STDIN));
$hasInvitation = trim(fgets(STDIN));

// TODO: Преобразовать строковые значения в булевы, сравнив их с "true"


// TODO: Проверить, может ли человек войти на мероприятие (не младше 18 AND имеет билет)


// TODO: Проверить, получает ли человек бесплатный вход (является членом OR имеет приглашение)


// Вывести результаты с помощью var_dump()

?>
quiz iconПроверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор PHP