Базовый курс PHP — Переменные с логическим типом (bool)
Уроки курса 10 из 12
Содержание урока
Что значит переменные с типом данных bool?
Переменные с типом данных bool (сокращение от boolean) могут содержать только два значения:
true (истина) или false (ложь).
Этот тип данных используется для хранения логических значений: да/нет, включено/выключено, правда/ложь.
Значения true и false записываются без кавычек.
Для просмотра значения переменной типа bool удобно использовать функцию var_dump(),
которая выводит тип и значение переменной.
<?php
$isActive = true;
$isBlocked = false;
var_dump($isActive); // bool(true)
var_dump($isBlocked); // bool(false)
echo $isActive; // 1
echo PHP_EOL;
echo $isBlocked; // (пустая строка)
bool(true)
bool(false)
1
echo выводит true как 1, а false как пустую строку.
Поэтому для отладки логических значений лучше использовать var_dump().
Как операторы сравнения возвращают bool?
Операторы сравнения всегда возвращают значение типа bool:
== — равно
!= — не равно
> — больше
< — меньше
>= — больше или равно
<= — меньше или равно
<?php
$a = 10;
$b = 5;
var_dump($a > $b); // bool(true) - 10 больше 5
var_dump($a < $b); // bool(false) - 10 не меньше 5
var_dump($a == $b); // bool(false) - 10 не равно 5
var_dump($a != $b); // bool(true) - 10 не равно 5
var_dump($a >= 10); // bool(true) - 10 больше или равно 10
bool(true)
bool(false)
bool(false)
bool(true)
bool(true)
<?php
$x = 10;
$y = 10;
$isEqual = ($x == $y);
$isGreater = ($x > $y);
var_dump($isEqual); // bool(true)
var_dump($isGreater); // bool(false)
bool(true)
bool(false)
Какие логические операторы существуют?
Логические операторы позволяют комбинировать несколько условий:
&& — логическое И (оба условия должны быть true)
|| — логическое ИЛИ (хотя бы одно условие должно быть true)
! — логическое НЕ (инвертирует значение)
<?php
$a = true;
$b = false;
// Логическое И (&&) - оба должны быть true
var_dump($a && $a); // bool(true)
var_dump($a && $b); // bool(false)
// Логическое ИЛИ (||) - хотя бы одно true
var_dump($a || $b); // bool(true)
var_dump($b || $b); // bool(false)
// Логическое НЕ (!) - инвертирует значение
var_dump(!$a); // bool(false)
var_dump(!$b); // bool(true)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)
bool(true)
Какие значения считаются true и false?
В PHP любое значение можно привести к типу bool.
Следующие значения считаются false:
false— само значение0— целое число ноль0.0— дробное число ноль''— пустая строка'0'— строка с нулёмnull— значение null[]— пустой массив (о массивах — в одном из следующих уроков)
Все остальные значения считаются true.
<?php
// Значения, которые считаются false
var_dump((bool) 0); // bool(false)
var_dump((bool) 0.0); // bool(false)
var_dump((bool) ''); // bool(false)
var_dump((bool) '0'); // bool(false)
var_dump((bool) null); // bool(false)
var_dump((bool) []); // bool(false)
// Значения, которые считаются true
var_dump((bool) 1); // bool(true)
var_dump((bool) -1); // bool(true)
var_dump((bool) 'текст'); // bool(true)
var_dump((bool) 3.14); // bool(true)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
Как использовать bool с функцией gettype()?
Функция gettype() показывает тип переменной.
Для значений true и false она вернёт строку boolean.
<?php
$isOnline = true;
$isOffline = false;
$number = 42;
$text = 'Привет';
echo gettype($isOnline) . PHP_EOL; // boolean
echo gettype($isOffline) . PHP_EOL; // boolean
echo gettype($number) . PHP_EOL; // integer
echo gettype($text); // string
boolean
boolean
integer
string