Логические операторы. Часть 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 и о том, как объединять несколько логических операторов.
Задание
ЛегкоПрочитайте четыре значения из input: целое число age, строку hasTicket (либо "true", либо "false"), строку isMember (либо "true", либо "false") и строку hasInvitation (либо "true", либо "false").
Преобразуйте строковые values в логические значения, сравнив их с "true".
Вычислите следующие два условия и выведите результат каждого с помощью var_dump(), каждый с новой строки:
- Проверьте, может ли person enter event: ему должно быть least 18 лет AND у него должен быть билет
- Проверьте, получает ли 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()
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравненияРавенство и идентичностьЛогические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логика2Переменные и типы данных
ЧислаСтроки и кавычкиБулевы значенияСоглашения об именованииПовторение — инициализация переменныхПустые переменныеКонкатенация строкПолучение пользовательского вводаПриведение к другим типам5Условная логика
Оператор ifIf — ElseТернарный операторОператор нулевого слиянияОператор switchПовторение: принятие решений3Основные операторы
Арифметические операторыОператор остатка от деленияОператор возведения в степеньСоставное присваиваниеИнкремент/декрементПриоритет операторовПовторение — простые вычисленияОператоры строкПотренируйтесь самостоятельно: Онлайн-компилятор PHP