Booleano
En esta página
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
var_dump($foo); // bool(true)
?>
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.0y-0.0(cero) -
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
GMPque representan el valor0.
Todos los demás valores son considerados como true (incluyendo los recursos y NAN).
[!WARNING]
-1es considerado comotrue, como todos los números diferentes de cero (negativos o positivos) !
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)
?>