Logical Operators Part 1
Часть раздела Основы путешествия по PHP на Coddy — урок 25 из 71.
Логические операторы позволяют объединить несколько булевых выражений в одно. Это необходимо, когда нужно проверить несколько условий одновременно.
Оператор AND (&&) возвращает true только когда оба условия истинны:
<?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) - age condition fails
?>Оператор ИЛИ (||) возвращает true, когда хотя бы одно условие истинно:
<?php
$isWeekend = true;
$isHoliday = false;
$dayOff = $isWeekend || $isHoliday;
var_dump($dayOff); // bool(true) - выходной истинен
$isWeekend = false;
$dayOff = $isWeekend || $isHoliday;
var_dump($dayOff); // bool(false) - оба ложны
?>Думайте о && как о «оба должны быть истинными» и || как о «хотя бы один должен быть истинным». В следующем уроке вы узнаете об операторе NOT и о том, как комбинировать несколько логических операторов.
Задание
ЛегкоПрочитайте четыре значения из ввода: целое число age, строку hasTicket (либо "true", либо "false"), строку isMember (либо "true", либо "false") и строку hasInvitation (либо "true", либо "false").
Преобразуйте строковые значения в булевы, сравнивая их с "true".
Вычислите следующие два условия и выведите результат каждого с помощью var_dump(), каждое на новой строке:
- Проверьте, может ли человек войти на мероприятие: ему должно быть не менее 18 лет и иметь билет
- Проверьте, получает ли человек бесплатный вход: он должен быть членом или иметь приглашение
Пример:
Если входные данные 25, true, false и true, вывод должен быть:
bool(true)
bool(true)Пояснение:
- 25 >= 18 и hasTicket истинно → true
- isMember ложно или hasInvitation истинно → true
Шпаргалка
Оператор AND (&&) возвращает true только когда оба условия истинны:
<?php
$age = 25;
$hasLicense = true;
$canDrive = $age >= 18 && $hasLicense;
var_dump($canDrive); // bool(true)
?>Оператор OR (||) возвращает true, когда хотя бы одно условие истинно:
<?php
$isWeekend = true;
$isHoliday = false;
$dayOff = $isWeekend || $isHoliday;
var_dump($dayOff); // bool(true)
?>Попробуйте сами
<?php
// Читаем входные значения
$age = intval(fgets(STDIN));
$hasTicket = trim(fgets(STDIN));
$isMember = trim(fgets(STDIN));
$hasInvitation = trim(fgets(STDIN));
// TODO: Преобразовать строковые значения в булевы, сравнив их с "true"
// TODO: Проверить, может ли человек попасть на мероприятие (не менее 18 И есть билет)
// TODO: Проверить, получает ли человек бесплатный вход (является членом ИЛИ есть приглашение)
// Вывести результаты с помощью var_dump()
?>В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators