006a Tipos de datos: booleanos
Un booleano es el tipo de datos más simple. O es verdadero o falso. Nada más. Limitando el tipo a sólo dos posible valores es particularmente útil en evaluar condicionales, lo cual es cuando queremos hacer una decisión en el código. Llegaremos a cómo se hace en un capítulo futuro.
Usted puede asignar un valor booleano a una variable usando una de las dos constantes incluidas: true
(verdadero) y false
(falso).
<?php
$booleano = true;
$booleano = false;
?>
Anota de que las constantes booleanas son especiales en el sentido de que, desemejante a otras constantes en PHP, ellas no distinguen entre mayúsculas y minúsculas. Por eso, true
, TRUE
, True
, y tRuE
son todos iguales. Y también false
, FALSE
, False
, and FaLsE
.
Mejores practicas
A pesar de que las constantes booleanas no distinguen entre mayúsculas y minúsculas, por costumbre, sólo use todo minúscula al usarlas: true
y false
.
Forzado a booleano
Cubrimos el forzado de tipos en la lección de tipos de datos, y es tan simple como poner (bool)
antes de lo que quiere forzar. Sin embargo, es importante entender que convertirá a true
y que a false
.
Lo siguiente viene de la documentación de PHP de booleanos:
Cuando se realizan conversiones a boolean, los siguientes valores se consideran
false
:
<?php
// Lo siguiente convertirá a false:
(bool) false;
(bool) 0;
(bool) 0.0;
(bool) -0.0; // Raro
(bool) "0"; // Esto es sorprendiente
(bool) array();
(bool) null;
(bool) simplexml_load_string("<p></p>"); // También sorprendiente
?>
Algunos de estos tal vez no tienen sentido o parecen extraño. Sólo aceptamos lo raro, y recordamos que son casos cuando forzando a booleano regresará false
.
Todo lo demás forzará a true
: cualquier número positivo, cualquier número negativo, y cualquier string que no está vacío o "0", etc.
Recursos
Retos
Intenta forzar booleano
Utilizando el método var_dump()
, meta las declaraciones mencionadas anteriormente y anote lo que sale.
<?php
var_dump((bool) false));
var_dump((bool) 0);
var_dump((bool) 0.0);
var_dump((bool) -0.0);
var_dump((bool) "0");
var_dump((bool) array());
var_dump((bool) null);
var_dump((bool) simplexml_load_string("<p></p>"));
?>
Después, trate algunas cosas que deben forzar a true
.