W3docs

is_bool()

A função is_bool() do PHP verifica se uma variável é do tipo boolean. Saiba sintaxe, valores de retorno e quando usá-la no seu código.

Introdução

is_bool() é uma função PHP embutida que informa se uma variável contém um valor boolean. Um boolean é o tipo de dado mais simples do PHP: ele só pode ser true ou false.

O ponto fundamental a entender é que is_bool() verifica o tipo da variável, não se o valor é "truthy" ou "falsy". Uma string como "true", o inteiro 1 ou um array vazio são avaliados como truthy ou falsy em uma instrução if, mas nenhum deles é realmente um boolean, portanto is_bool() retorna false para todos eles. Apenas um valor proveniente de um literal boolean (true/false) ou de uma expressão de comparação/lógica (que sempre produz um boolean) passa no teste.

Esta página aborda a sintaxe, o que is_bool() retorna para os valores que você provavelmente testará e quando usá-la em código real.

Sintaxe

is_bool(mixed $value): bool

Ela recebe um único argumento, $value — a variável que você deseja inspecionar — e retorna true se esse valor for do tipo boolean, false caso contrário. A função nunca modifica a variável e nunca gera um erro: ela sempre retorna um boolean próprio.

Exemplo de uso

O exemplo abaixo testa um boolean verdadeiro contra uma string para que você possa ver exatamente o que é impresso:

Exemplo de is_bool() em PHP

php— editable, runs on the server

Observe a saída com atenção: ao usar echo em um boolean, true se torna a string "1" e false se torna uma string vazia "". É por isso que a segunda linha parece em branco — is_bool($name) retornou false, e o PHP imprime false como nada. Para obter um resultado inequívoco durante a depuração, use var_dump() em vez de echo, pois ele imprime bool(true) / bool(false).

O que conta como boolean

Um erro comum é presumir que valores "truthy" são booleans. Não são. A tabela abaixo mostra o que is_bool() retorna para uma variedade de valores:

<?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
?>

Os valores 1, "true", null e [] são todos falsy ou truthy em condições, mas seu tipo é inteiro, string, null e array respectivamente — portanto is_bool() os rejeita.

Quando usar

is_bool() é mais útil nas fronteiras do seu código, onde o tipo de dado importa:

  • Validar argumentos de função. Se uma função espera um sinalizador estrito de ligado/desligado, is_bool() permite rejeitar "yes", 1 ou null antes que causem bugs sutis.
  • Distinguir false de "nenhum valor". Funções como strpos() retornam false em caso de falha, mas um 0 válido em caso de sucesso. Verificar o tipo com is_bool() (ou o operador ===) evita confundir os dois.
  • Lidar com configurações mistas. Configurações carregadas de JSON ou de um formulário podem chegar como strings; is_bool() informa se um valor já é um boolean real ou ainda precisa de conversão com 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
?>

Funções relacionadas

is_bool() faz parte da família de funções de verificação de tipo do PHP. A função correta depende do tipo que você precisa verificar:

Conclusão

is_bool() responde a uma pergunta precisa: o tipo desta variável é boolean? Ela retorna true apenas para true, false e os resultados de expressões de comparação ou lógicas — nunca para strings, números ou arrays truthy. Use-a para proteger argumentos de função, diferenciar um false real de um valor "ausente" e manter seu código funcionando com os tipos de dados exatos que você espera.

Prática

Prática
O que a função is_bool() do PHP faz?
O que a função is_bool() do PHP faz?
Was this page helpful?