Логический тип (bool) принимает только два значения,
которые выражают истинность: true или false.
Логические литералы — значения с типом bool — указывают константами true
или false. Обе константы регистронезависимы.
<?php
$foo = True; // Присвоить переменной $foo значение 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"
Все остальные значения считаются 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)
?>