У логического типа (bool) есть только два значения
и они выражают истинность значения.
Он может быть либо true
, либо false
.
Чтобы задать логический литерал bool, указывают константы true
или
false
. Они обе регистронезависимы.
<?php
$foo = True; // Присвоить переменной $foo значение TRUE
?>
Обычно, некоторый оператор возвращает логическое значение bool, которое потом передаётся управляющей конструкции.
<?php
// == это оператор, который проверяет
// эквивалентность и возвращает boolean
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)
?>