linkedin behance copy arrow-up

Booléen


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.

Syntaxe

Pour spécifier un booléen littéral, utilisez la constante true ou false. Les deux sont insensibles à la casse.


<?php
$foo = true; // assigne la valeur TRUE à $foo
?>

Typiquement, le résultat d'un opérateur qui retourne un booléen, passé ensuite à une structure de contrôle.


<?php
// == 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";
}
?>
Conversion en booléen

Pour convertir explicitement une valeur en bool, utilisez 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 le page Type Juggling.

Lors d'une conversion en booléen, les valeurs suivantes sont considérées comme false :

  • le booléen false, lui-même
  • l'entier 0 (zéro)
  • les nombres à virgule flottante 0.0 et -0.0 (zéro)
  • la chaîne vide "", et la chaîne "0"
  • 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 SimpleXML créés à partir d'éléments vides sans attributs.

Toutes les autres valeurs sont considérées comme true (y compris les ressources et NAN).

Avertissement:
-1 est considéré comme true, comme tous les nombres différents de zéro (négatifs ou positifs) !

<?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)
?>

© 2010-2022 Quazerty.