У логического типа (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)
?>