Логический тип (bool) принимает только два значения,
которые выражают истинность: true
или false
.
Чтобы задать логический литерал bool, указывают константы true
или false
. Обе константы регистронезависимы.
<?php
$foo = True; // Присвоить переменной $foo значение TRUE
?>
Часто результат выполнения оператора, который возвращает логическое значение bool, передаётся управляющей конструкции.
<?php
// «==» — оператор, который проверяет
// эквивалентность и возвращает логическое значение
if ($action == "show_version") {
echo "Версия 1.23";
}
// это необязательно...
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
рассматривается как true
, как и любое другое ненулевое
(отрицательное или положительное) число!
<?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)
?>