W3docs

is_bool()

La función is_bool() en PHP verifica si una variable es de tipo boolean o no, devolviendo true solo para valores booleanos reales.

Introducción

is_bool() es una función integrada de PHP que indica si una variable contiene un valor boolean. Un boolean es el tipo de dato más simple en PHP: solo puede ser true o false.

Lo más importante que hay que entender es que is_bool() verifica el tipo de la variable, no si el valor es "verdadero" o "falso" en un sentido amplio. Una string como "true", el entero 1, o un array vacío se evalúan como verdaderos o falsos en una sentencia if, pero ninguno de ellos es realmente un boolean, por lo que is_bool() devuelve false para todos ellos. Solo un valor que proviene de un literal boolean (true/false) o de una expresión de comparación o lógica (que siempre produce un boolean) pasa la prueba.

Esta página cubre la sintaxis, lo que is_bool() devuelve para los valores que es probable que pruebes, y cuándo usarla en código real.

Sintaxis

is_bool(mixed $value): bool

Acepta un único argumento, $value — la variable que deseas inspeccionar — y devuelve true si ese valor es de tipo boolean, false en caso contrario. La función nunca modifica la variable y nunca genera un error: siempre devuelve un boolean propio.

Ejemplo de uso

El siguiente ejemplo prueba un boolean verdadero contra una string para que puedas ver exactamente qué se imprime:

Ejemplo de is_bool() en PHP

php— editable, runs on the server

Observa la salida con atención: cuando haces echo a un boolean, true se convierte en la string "1" y false se convierte en una string vacía "". Por eso la segunda línea parece estar en blanco — is_bool($name) devolvió false, y PHP imprime false como nada. Para obtener un resultado inequívoco durante la depuración, usa var_dump() en lugar de echo, ya que imprime bool(true) / bool(false).

Qué se considera un boolean

Un error común es asumir que los valores "verdaderos" son booleanos. No lo son. La tabla a continuación muestra lo que is_bool() devuelve para un rango 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
?>

Los valores 1, "true", null y [] son todos falsos o verdaderos en condiciones, pero su tipo es entero, string, null y array respectivamente — por lo tanto is_bool() los rechaza.

Cuándo usarla

is_bool() es más útil en los límites de tu código, donde el tipo de dato importa:

  • Validar argumentos de función. Si una función espera un indicador estricto de activado/desactivado, is_bool() te permite rechazar "yes", 1 o null antes de que causen errores sutiles.
  • Distinguir false de "sin valor". Funciones como strpos() devuelven false en caso de fallo pero un 0 válido en caso de éxito. Verificar el tipo con is_bool() (o el operador ===) evita confundir ambos casos.
  • Manejar configuraciones mixtas. Las configuraciones cargadas desde JSON o un formulario pueden llegar como strings; is_bool() te indica si un valor ya es un boolean real o todavía necesita conversión con 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
?>

Funciones relacionadas

is_bool() es una de las funciones de verificación de tipos de PHP. La adecuada depende del tipo que te interese:

Conclusión

is_bool() responde una pregunta precisa: ¿el tipo de esta variable es boolean? Devuelve true solo para true, false, y los resultados de expresiones de comparación o lógicas — nunca para strings, números o arrays con valores verdaderos. Úsala para proteger argumentos de función, distinguir un false real de un valor "ausente", y mantener tu código trabajando con los tipos de datos exactos que esperas.

Práctica

Práctica
¿Qué hace la función is_bool() en PHP?
¿Qué hace la función is_bool() en PHP?
Was this page helpful?