Булев
Это простейший тип. 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)
или (boolean)
. Однако,
в большинстве случаев приведение типа необязательно, так как значение будет автоматически
преобразовано, если оператор, функция или управляющая конструкция требует
аргумент типа bool.
Смотрите также Манипуляции с типами.
При преобразовании в bool, следующие значения рассматриваются как
false
:
-
само значение boolean
false
- integer 0 (ноль) и -0 (минус ноль)
- float 0.0 (ноль) и -0.0 (минус ноль)
- пустая строка, и строка "0"
- массив без элементов
- особый тип NULL (включая неустановленные переменные)
- Объекты SimpleXML, созданные из пустых тегов
Все остальные значения рассматриваются как true
(включая любой
resource
и NAN
).
-1
рассматривается как true
, как и любое другое ненулевое
(отрицательное или положительное) число!
<?php
var_dump((bool) ""); // 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)
?>