Le type bool ne possède que deux valeurs, et est utilisé pour
exprimer une valeur de vérité. Il peut être soit true soit false.
Pour spécifier un booléen littéral, utiliser la constante true ou
false. Les deux sont insensibles à la casse.
<?php
$foo = true; // assigne la valeur TRUE à $foo
var_dump($foo); // bool(true)
?>Typiquement, le résultat d'un opérateur qui retourne un booléen est passé ensuite à une structure de contrôle.
<?php
$action = "show_version";
$show_separators = true;
// == est un opérateur qui teste
// l'égalité et retourne un booléen
if ($action == "show_version") {
echo "La version est 1.23";
}
// ceci n'est pas nécessaire...
if ($show_separators == TRUE) {
echo "<hr>\n";
}
// ...à la place, vous pouvez utiliser, avec la même signification :
if ($show_separators) {
echo "<hr>\n";
}
?>
Pour convertir explicitement une valeur en bool, utiliser
le cast (bool). Généralement, cela n'est pas nécessaire
car lorsqu'une valeur est utilisée dans un contexte logique, elle sera
automatiquement interprétée comme une valeur de type bool.
Pour plus d'informations, voir la page
Type Juggling.
Lors d'une conversion en booléen, les valeurs suivantes sont
considérées comme false :
l'entier
0 (zéro)
les nombres à virgule flottante
0.0 et -0.0 (zéro)
un tableau avec aucun élément
le type unité NULL (incluant les variables non définies)
les objets internes qui surchargent leur comportement de casting en booléen.
Par exemple, les objets GMP représentant la valeur
0.
Toutes les autres valeurs sont considérées comme true (y compris les
ressources et NAN).
-1 est considéré comme true, comme tous les nombres
différents de zéro (négatifs ou positifs) !
Exemple #1 Conversion en booléen
<?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)
?>