Логический тип

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

  • само значение boolean false
  • integer 0 (ноль)
  • float 0.0 (ноль) и -0.0 (минус ноль)
  • пустая строка "" и строка "0"
  • массив без элементов
  • особый тип NULL (включая неустановленные переменные)
  • внутренние объекты, которые перегружают своё поведение приведения к логическому типу. Например: объекты SimpleXML, созданные из пустых элементов без атрибутов.

Все остальные значения считаются 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)
?>