Booléens

C'est le type le plus simple. Un booléen exprime une valeur de vérité. Il peut prendre comme valeur soit TRUE soit FALSE.

Note : Le type booléen a été introduit en PHP 4.

Syntaxe

Vous pouvez utiliser les mots-clés 'TRUE' et 'FALSE' pour spécifier une valeur de type booléen. Ces mots-clés sont insensibles à la casse.

Exemple 11-2. Utilisation des mots-clés TRUE et FALSE

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

Généralement, vous les créerez avec un des opérateurs qui retourne une valeur bool, pour les passer à une structure de contrôle.

Exemple 11-3. Utilisation des constantes TRUE et FALSE avec une structure de contrôle

<?php
// == est un opérateur d'égalité
// qui retourne un booléen
if ($action == 'show_version') {
    echo
'La version est la 1.23';
}

// Ceci n'est pas nécessaire
if ($show_separators == TRUE) {
    echo
"<hr />\n";
}

// car vous pouvez simplement utiliser
if ($show_separators) {
    echo
"<hr />\n";
}
?>

Conversion en booléen

Pour explicitement convertir une valeur en booléen, utilisez les opérateurs de transtypage (bool) ou (boolean). Cependant, dans la plupart des cas, vous n'avez pas besoin d'utiliser ces opérateurs de transtypage, car une valeur sera automatiquement convertie si un opérateur, une fonction ou une structure de contrôle requièrent un argument de type booléen.

Voir aussi le chapitre "Définition du type".

Lors des conversions de valeurs de type bool, les valeurs suivantes sont considérées comme fausses (FALSE) :

Toutes les autres valeurs sont considérées comme vraies (TRUE) (y compris les ressource).

Avertissement

-1 est considéré comme vrai, tout comme les nombres autres que zéro (aussi bien positifs que négatifs) !

Exemple 11-4. Conversion en booléen

<?php
var_dump
((bool) "");        // 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)
?>