W3docs

is_bool()

Функция is_bool() — встроенная функция PHP, которая проверяет, является ли переменная булевым значением (true или false).

Введение

is_bool() — встроенная функция PHP, которая проверяет, содержит ли переменная значение типа boolean. Булев тип — простейший тип данных в PHP: он может принимать только значения true или false.

Важно понимать, что is_bool() проверяет тип переменной, а не является ли значение «истинным» или «ложным». Строка "true", целое число 1 или пустой массив вычисляются как истинные или ложные в инструкции if, но ни одно из них не является настоящим булевым значением, поэтому is_bool() возвращает false для всех них. Тест проходят только значения, полученные из булевых литералов (true/false) или из выражений сравнения/логических выражений (которые всегда возвращают булев тип).

На этой странице описаны синтаксис, возвращаемые значения is_bool() для типичных проверяемых значений, а также случаи применения функции в реальном коде.

Синтаксис

is_bool(mixed $value): bool

Функция принимает один аргумент, $value — переменную для проверки — и возвращает true, если значение имеет тип boolean, иначе false. Функция никогда не изменяет переменную и не генерирует ошибок: она всегда возвращает собственное булево значение.

Пример использования

Пример ниже проверяет настоящее булево значение и строку, чтобы показать, что именно выводится:

Пример PHP is_bool()

php— editable, runs on the server

Обратите внимание на вывод: при использовании echo для булева значения true превращается в строку "1", а false — в пустую строку "". Именно поэтому вторая строка выглядит пустой — is_bool($name) вернула false, и PHP выводит false как ничего. Чтобы получить однозначный результат при отладке, используйте var_dump() вместо echo, так как она выводит bool(true) / bool(false).

Что считается булевым значением

Распространённая ошибка — считать «истинные» значения булевыми. Это не так. В таблице ниже показано, что возвращает is_bool() для разных значений:

<?php
var_dump(is_bool(true));        // bool(true)
var_dump(is_bool(false));       // bool(true)
var_dump(is_bool(5 > 3));       // bool(true)  — a comparison yields a boolean
var_dump(is_bool(1));           // bool(false) — integer, not boolean
var_dump(is_bool("true"));      // bool(false) — string, not boolean
var_dump(is_bool(null));        // bool(false) — null is its own type
var_dump(is_bool([]));          // bool(false) — empty array
?>

Значения 1, "true", null и [] являются ложными или истинными в условиях, но их тип — integer, string, null и array соответственно, поэтому is_bool() их отклоняет.

Когда использовать

is_bool() наиболее полезна на границах вашего кода, где важен тип данных:

  • Валидация аргументов функций. Если функция ожидает строгий флаг вкл/выкл, is_bool() позволяет отклонить "yes", 1 или null до того, как они приведут к скрытым ошибкам.
  • Различение false и «отсутствующего значения». Такие функции, как strpos(), возвращают false при неудаче, но корректный 0 при успехе. Проверка типа с помощью is_bool() (или оператора ===) позволяет избежать их путаницы.
  • Обработка смешанных конфигураций. Настройки, загруженные из JSON или формы, могут поступать в виде строк; is_bool() позволяет определить, является ли значение уже настоящим булевым или ещё требует преобразования с помощью boolval().
<?php
function setFeature(string $name, $enabled): void
{
    if (!is_bool($enabled)) {
        throw new InvalidArgumentException("\$enabled must be a boolean.");
    }
    echo "$name is now " . ($enabled ? "on" : "off") . "\n";
}

setFeature("dark_mode", true);   // dark_mode is now on
// setFeature("dark_mode", 1);   // would throw: $enabled must be a boolean
?>

Связанные функции

is_bool() входит в семейство функций проверки типов PHP. Нужная функция зависит от проверяемого типа:

  • is_int() — проверка целых чисел.
  • is_string() — проверка строк.
  • is_array() — проверка массивов.
  • is_null() — проверка null.
  • gettype() — получение типа любой переменной в виде строки.
  • boolval() — преобразование значения в булево вместо его проверки.

Заключение

is_bool() отвечает на один точный вопрос: является ли тип этой переменной булевым? Она возвращает true только для true, false и результатов выражений сравнения или логических выражений — но никогда для истинных строк, чисел или массивов. Используйте её для защиты аргументов функций, различения настоящего false от «отсутствующего» значения и обеспечения работы кода с точными ожидаемыми типами данных.

Практика

Практика
Что делает функция is_bool() в PHP?
Что делает функция is_bool() в PHP?
Was this page helpful?