Логический тип (bool) принимает только два значения,
которые выражают истинность: true или false.
Логические литералы — значения с типом bool — указывают константами true
или false. Обе константы регистронезависимы.
<?php
$foo = True; // Присвоить переменной $foo значение TRUE
var_dump($foo); // bool(true)Логические условия часто проверяют в управляющих конструкциях. Внутри конструкций выполняют операции, результатом которых становятся значения с типом bool.
<?php
$action = "show_version";
$show_separators = true;
// Оператор == проверит
// равенство и выражение вычислится как логическое значение
if ($action == "show_version") {
echo "Версия 1.23";
}
// Сравнение логической переменной со значением true избыточно,...
if ($show_separators == TRUE) {
echo "<hr>\n";
}
// ...поскольку проверка без сравнения даёт аналогичный результат:
if ($show_separators) {
echo "<hr>\n";
}
Оператор (bool) явно приводит значение
к типу bool.
В большей части сценариев ручное преобразование типа не потребуется, поскольку в логическом контексте
значение автоматически интерпретируется как значение с типом bool.
Дополнительную информацию о приведении типов даёт раздел
«Жонглирование типами».
При преобразовании в тип bool
следующие значения интерпретируются как false:
false
0 (ноль)
0.0 (ноль)
и -0.0 (минус ноль)
""
и строка "0"
0.
Все остальные значения считаются true
(включая resource
и NAN).
Число -1 PHP оценивает как логическое значение true,
как и любое другое ненулевое —
отрицательное или положительное — число!
Пример #1 Приведение к логическому типу
<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) "0"); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)