El tipo bool solo tiene dos valores y se usa para expresar
un valor de verdad. Puede ser true
(verdadero) o false
(falso).
Para especificar un literal de tipo bool se emplean las constantes true
o
false
. Ambas no son susceptibles a mayúsculas y minúsculas.
<?php
$foo = True; // asigna el valor TRUE a $foo
?>
Usualmente, el resultado de un operador que devuelve un valor de tipo bool es pasado a una estructura de control.
<?php
// == es un operador que comprueba la
// igualdad y devuelve un booleano
if ($accion == "mostrar_version") {
echo "La versión es 1.23";
}
// esto no es necesario...
if ($mostrar_separadores == TRUE) {
echo "<hr>\n";
}
// ...porque se puede escribir simplemente:
if ($mostrar_separadores) {
echo "<hr>\n";
}
?>
Para convertir explícitamente un valor a bool, usa la conversión
(bool)
. Generalmente, esto no es necesario porque cuando
un valor se usa en un contexto lógico, se interpretará automáticamente
como un valor de tipo bool. Para más información, consulta
la página Type Juggling.
Cuando se realizan conversiones a bool, los siguientes valores se
consideran false
:
false
mismo
0
(cero)
0.0
y -0.0
(cero)
""
(vacío), y el
string "0"
Cualquier otro valor se considera `true
`
(incluyendo resource
y NAN
).
-1
se considera true
, como cualquier otro número distinto de cero
(ya sea negativo o positivo).
<?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)
?>