W3docs

boolval()

Aprende a usar la función boolval() de PHP para convertir valores a boolean, sus reglas de verdad y casos de uso como callback en array_map().

Introducción

La función boolval() en PHP es una función de conversión de tipos que transforma cualquier valor a su equivalente boolean — ya sea true o false. Introducida en PHP 5.5, sigue las mismas reglas que PHP utiliza en cualquier lugar donde un valor se interpreta como condición (como dentro de una sentencia if), por lo que es una forma clara y explícita de preguntar "¿es este valor verdadero?".

boolval() hace exactamente lo mismo que el cast (bool). La razón de su existencia es que, a diferencia de un cast, una función puede pasarse como callback — por ejemplo a array_map() — algo que un constructo del lenguaje como (bool) no puede hacer.

Esta página cubre la sintaxis, cómo se convierte cada tipo, cómo se compara boolval() con el cast (bool), y los errores comunes (como el string "0").

Sintaxis básica

La sintaxis básica de la función boolval() es la siguiente:

Sintaxis básica de la función PHP boolval()

boolval(mixed $value): bool

El parámetro $value es el valor que se va a convertir. La función siempre devuelve un boolean: true para cualquier valor verdadero y false para cualquier valor falso. No tiene efectos secundarios y nunca lanza excepciones.

¿Qué valores son falsos?

PHP trata solo un conjunto fijo de valores como false. Todo lo demás es true. Memorizar esta breve lista es clave para usar boolval() correctamente:

  • false en sí mismo
  • el entero 0 y el float 0.0 (y -0.0)
  • el string vacío "" y el string "0"
  • el array vacío []
  • null
  • una variable no definida / no declarada

El string "0" es el error clásico: no está vacío, pero PHP lo considera falso. Nótese que "0.0", " " (un espacio) y "false" son strings verdaderos.

Ejemplo de uso

A continuación se muestra un ejemplo de cómo se puede usar la función boolval() en PHP:

Ejemplo de uso de PHP boolval()

php— editable, runs on the server

Aquí boolval() convierte $var1 (un entero distinto de cero) a true y $var2 (cero) a false. Envolvemos el resultado en var_export() para que el boolean se imprima como el texto literal true / false — un simple echo imprimiría 1 para true y nada en absoluto para false, lo que hace los resultados difíciles de leer.

boolval() vs el cast (bool)

Para convertir un único valor, boolval($x) y (bool) $x son intercambiables y producen resultados idénticos:

<?php

$value = "0";

var_export(boolval($value));   // false
echo "\n";
var_export((bool) $value);     // false

¿Cuándo debería elegir boolval() en lugar de (bool)? Siempre que necesite pasar la conversión como un callable. Un cast es un constructo del lenguaje, no una función, por lo que no puede entregarse a funciones de orden superior como array_map() o array_filter(). boolval sí puede:

Filtrando un array para obtener sus valores verdaderos

php— editable, runs on the server

Cada elemento se convierte a boolean. 1, "hello" y [1] pasan a ser true; el resto — incluido el engañoso "0" — pasan a ser false.

Error común: el string "0"

Dado que boolval() refleja las reglas de verdad de PHP, el string "0" se evalúa como false. Esto confunde al código que valida la entrada del usuario, ya que los campos de formulario siempre llegan como strings:

<?php

$input = "0"; // e.g. $_POST['quantity']

if (boolval($input)) {
    echo "treated as true\n";
} else {
    echo "treated as false\n"; // this branch runs
}

Si en realidad quiere saber "¿es este string no vacío?" en lugar de "¿es verdadero?", compare explícitamente con "" usando una verificación estricta ($input !== "") en vez de depender de boolval().

Buenas prácticas al usar boolval()

Para garantizar un uso eficiente de la función boolval() en PHP, es importante seguir algunas buenas prácticas:

Utilice comparaciones estrictas

Al usar la función boolval(), es importante emplear comparaciones estrictas (===) en lugar de comparaciones laxas (==). Esto se debe a que las comparaciones laxas pueden producir comportamientos inesperados.

Utilice tipos de variables apropiados

Al usar la función boolval(), es importante asegurarse de que la variable que se convierte sea del tipo adecuado. Para más detalles sobre cómo los diferentes tipos de datos se convierten a booleans, consulte el manual de PHP sobre coerción de tipos.

Referencia de conversión de tipos

Entender cómo los distintos tipos de PHP se convierten a booleans ayuda a evitar resultados inesperados:

TipoSe convierte a true cuandoSe convierte a false cuando
stringString no vacíoString vacío ""
int / floatValor distinto de cero0 o 0.0
arrayArray no vacíoArray vacío []
nullNuncaSiempre

Funciones relacionadas

boolval() es una de las funciones auxiliares de conversión de tipos de PHP. Utilice la que corresponda al tipo que necesita:

Para una visión general más amplia de cómo los valores cambian entre tipos, consulte tipos de datos en PHP.

Conclusión

boolval() convierte cualquier valor a boolean usando las reglas de verdad estándar de PHP, devolviendo false solo para la breve lista fija de valores falsos (false, 0, 0.0, "", "0", [], null y variables no definidas) y true para todo lo demás. Se comporta exactamente igual que el cast (bool), con la ventaja adicional de poder usarse como callback en funciones como array_map(). Tenga en cuenta el problema con "0" al validar entradas de string, y prefiera las comparaciones estrictas cuando necesite un control preciso.

Práctica

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