Главные новости

PHP boolean - логический тип

В этой главе:

Булев тип - простейший тип данных, выражающий истинность, он представляет два логических значения: "истина" и "ложь". Эти логические значения обозначаются в PHP зарезервированными словами true и false соответственно. Следовательно, переменная или выражение булева типа будет принимать одно из этих логических значений.

При выполнении арифметических операций над логической переменной она превращается в переменную с числовым типом данных. А именно, false будет рассматриваться как 0, а true - как 1. Если вы захотите вывести логическое значение на экран, в этом случае true будет преобразовано в 1, а false в 0 (false (0) не выводится на экране).

<?php $a = true; echo $a; echo true;?>

Синтаксис

Для указания булева значения, используйте ключевое слово true или false. Оба регистро-независимы:

<?php
$fy = true; // присвоить $fy значение TRUE
?>

Обычно, некоторый оператор возвращает булево значение, которое потом передается управляющей конструкции.

<?php
// == это оператор, который проверяет
// эквивалентность и возвращает булево значение
if ($action == "show_version") {
echo "The version is 1.23";
}

// это необязательно...
if ($show_separators == TRUE) {
echo "<hr>\n";
}
// ... потому что следующее имеет тот же самый смысл:
if ($show_separators) {
echo "<hr>\n";
}
?>

Преобразование в булев тип

Для явного преобразования (приведения) в булев тип, используйте (bool) или (boolean). Однако, в большинстве случаев приведение типа необязательно, так как значение будет преобразовано автоматически, если оператор, управляющая конструкция или функция требует булев аргумент.

При преобразовании в логический тип, следующие значения рассматриваются как FALSE:

  • само булево значение FALSE
  • integer 0 (ноль)
  • float 0.0 (ноль)
  • пустая строка, и строка "0"
  • массив без элементов
  • особый тип NULL (включая неустановленные переменные)
  • Объекты SimpleXML, созданные из пустых тегов

Все остальные значения рассматриваются как TRUE (включая любой resource).

Будьте внимательны: -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((boolean) 2.3e5); // bool(true)
var_dump((boolean) array(12)); // bool(true)
var_dump((boolean) array()); // bool(false)
var_dump((boolean) "false"); // bool(true)
?>