Булев

Это простейший тип. 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)
?>