PHP: Логический тип
Кроме арифметических операций со школы нам известны операции сравнения. Например, 5 > 4
. Это звучит как вопрос: «5 больше 4?». В данном случае ответ «да». В других случаях ответом может быть «нет» (например, для 3 < 1
).
Операции сравнения не имеют привязки к числам. Сравнивать можно практически всё что угодно, например, строки. Каждый раз, когда мы входим на какой-то сайт, внутри происходит сравнение введенных логина и пароля с теми, какие есть в базе. И только если они есть, нас пускают во внутрь (аутентифицируют).
Языки программирования адаптировали все математические операции сравнения практически в неизменном виде. Единственное серьезное отличие – операторы равенства и неравенства. В математике для этого используется обычное равно =
, но в программировании такое встречается не часто. Во многих языках символ =
используется для присваивания значений переменным, поэтому для сравнения взяли ==
или ===
.
Список операций сравнения:
<
меньше<=
меньше или равно>
больше>=
больше или равно===
равно!==
не равно
Небольшая ремарка: для равенства и неравенства также существуют операторы ==
и !=
, которые мы не будем использовать из-за потенциальной опасности. Мы поговорим об этом в будущих уроках.
Логическая операция типа 5 > 4
или $password === $text
— это выражение, и его результат — специальное значение true
(«истина») или false
(«ложь»). Это новый для нас тип данных — bool. Он содержит всего лишь два этих значения.
<?php
$result = 5 > 4;
print_r(result); // => true
print_r('one' !== 'one'); // => false
Наряду со строками (string) и целыми и рациональными числами, тип bool (булев) — это один из примитивных типов данных в PHP.
Попробуем написать примитивную функцию, которая принимает на вход возраст ребенка и определяет, младенец ли он. Младенцами считаются дети до года:
<?php
function isInfant($age)
{
return $age < 1;
}
Пользуемся тем фактом, что любая операция — это выражение, поэтому единственной строчкой функции пишем «вернуть то значение, которое получится в результате сравнения $age < 1
».
В зависимости от пришедшего аргумента, сравнение будет либо истинным (true
), либо ложным (false
), а return
вернёт этот результат.
Вызовем функцию и выведем на экран результат. Для вывода bool нужно использовать var_dump()
, а не print_r()
:
<?php
function isInfant($age)
{
return $age < 1;
}
var_dump(isInfant(3));
bool(false)
А теперь проверим ребенка, которому полгода:
<?php
var_dump(isInfant(0.5));
bool(true)
Задание
Напишите функцию isPensioner()
, которая принимает возраст в качестве единственного аргумента и проверяет, является ли этот возраст пенсионным. Пенсионным считается возраст 60 лет и больше.
Примеры вызова:
<?php
isPensioner(75); // true
isPensioner(18); // false
Определения
Логический тип (bool) - тип данных с двумя возможными значениями: true (истина) и false (ложь).