Booleano

El tipo bool solo posee dos valores y se utiliza para expresar un valor de verdad. Puede ser true o false.

Sintaxis

Para especificar un bool literal, utilice la constante true o false. Ambas son insensibles a mayúsculas y minúsculas.

<?php
$foo
= true; // asigna el valor TRUE a $foo
?>

Típicamente, el resultado de un operador que devuelve un bool, pasado luego a una estructura de control.

<?php
$action
= "show_version";
$show_separators = true;

// == es un operador que prueba
// la igualdad y devuelve un booleano
if ($action == "show_version") {
echo
"La versión es 1.23";
}

// esto no es necesario...
if ($show_separators == TRUE) {
echo
"<hr>\n";
}

// ...en su lugar, se puede utilizar, con el mismo significado:
if ($show_separators) {
echo
"<hr>\n";
}
?>

Conversión en booleano

Para convertir explícitamente un valor en bool, utilice el cast (bool). Generalmente, esto no es necesario porque cuando un valor se utiliza en un contexto lógico, se interpretará automáticamente como un valor de tipo bool. Para más información, ver la página Type Juggling.

Al convertir en bool, los siguientes valores son considerados como false:

  • el booleano false, en sí mismo
  • el entero 0 (cero)
  • los números de punto flotante 0.0 y -0.0 (cero)
  • la cadena vacía "", y la cadena "0"
  • un array sin elementos
  • el tipo unidad NULL (incluyendo variables no definidas)
  • los objetos internos que sobrecargan su comportamiento de casting en booleano. Por ejemplo: los objetos SimpleXML creados a partir de elementos vacíos sin atributos, o los objetos GMP que representan el valor 0.

Todos los demás valores son considerados como true (incluyendo los recursos y NAN).

Advertencia

-1 es considerado como true, como todos los números diferentes de cero (negativos o positivos) !

Ejemplo #1 Conversión en booleano

<?php
var_dump
((bool) ""); // bool(false)
var_dump((bool) "0"); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>