W3docs

is_bool()

La fonction is_bool() est une fonction intégrée de PHP qui vérifie si une variable est un booléen ou non. Un booléen est un type de données qui peut avoir

Introduction

is_bool() est une fonction intégrée de PHP qui indique si une variable contient une valeur booléenne. Un booléen est le type de données le plus simple en PHP : il ne peut valoir que true ou false.

L'essentiel à comprendre est que is_bool() vérifie le type de la variable, et non si la valeur est « truthy » ou « falsy ». Une chaîne comme "true", l'entier 1, ou un tableau vide sont tous évalués comme truthy ou falsy dans une instruction if, mais aucun d'eux n'est réellement un booléen, donc is_bool() retourne false pour tous. Seule une valeur issue d'un littéral booléen (true/false) ou d'une expression de comparaison/logique (qui produit toujours un booléen) passe le test.

Cette page couvre la syntaxe, ce que is_bool() retourne pour les valeurs que vous êtes susceptible de tester, et dans quels cas l'utiliser dans du code réel.

Syntaxe

is_bool(mixed $value): bool

Elle prend un seul argument, $value — la variable que vous souhaitez inspecter — et retourne true si cette valeur est de type booléen, false sinon. La fonction ne modifie jamais la variable et ne lève jamais d'erreur : elle retourne toujours un booléen.

Exemple d'utilisation

L'exemple ci-dessous teste un vrai booléen contre une chaîne de caractères pour voir exactement ce qui est affiché :

Exemple de is_bool() en PHP

php— editable, runs on the server

Observez attentivement le résultat : lorsque vous utilisez echo avec un booléen, true devient la chaîne "1" et false devient une chaîne vide "". C'est pourquoi la deuxième ligne semble vide — is_bool($name) a retourné false, et PHP affiche false comme rien. Pour obtenir un résultat non ambigu lors du débogage, utilisez var_dump() plutôt que echo, car il affiche bool(true) / bool(false).

Ce qui compte comme un booléen

Une erreur courante est de supposer que les valeurs « truthy » sont des booléens. Ce n'est pas le cas. Le tableau ci-dessous montre ce que is_bool() retourne pour diverses valeurs :

<?php
var_dump(is_bool(true));        // bool(true)
var_dump(is_bool(false));       // bool(true)
var_dump(is_bool(5 > 3));       // bool(true)  — a comparison yields a boolean
var_dump(is_bool(1));           // bool(false) — integer, not boolean
var_dump(is_bool("true"));      // bool(false) — string, not boolean
var_dump(is_bool(null));        // bool(false) — null is its own type
var_dump(is_bool([]));          // bool(false) — empty array
?>

Les valeurs 1, "true", null, et [] sont toutes falsy ou truthy dans les conditions, mais leur type est respectivement entier, string, null et array — donc is_bool() les rejette.

Quand l'utiliser

is_bool() est particulièrement utile aux limites de votre code, là où le type de données est important :

  • Validation des arguments de fonction. Si une fonction attend un indicateur on/off strict, is_bool() vous permet de rejeter "yes", 1, ou null avant qu'ils ne provoquent des bugs subtils.
  • Distinguer false d'une "valeur absente". Des fonctions comme strpos() retournent false en cas d'échec mais un 0 valide en cas de succès. Vérifier le type avec is_bool() (ou l'opérateur ===) évite de confondre les deux.
  • Gestion de configuration mixte. Les paramètres chargés depuis JSON ou un formulaire peuvent arriver sous forme de chaînes ; is_bool() vous indique si une valeur est déjà un vrai booléen ou nécessite encore une conversion avec boolval().
<?php
function setFeature(string $name, $enabled): void
{
    if (!is_bool($enabled)) {
        throw new InvalidArgumentException("\$enabled must be a boolean.");
    }
    echo "$name is now " . ($enabled ? "on" : "off") . "\n";
}

setFeature("dark_mode", true);   // dark_mode is now on
// setFeature("dark_mode", 1);   // would throw: $enabled must be a boolean
?>

Fonctions associées

is_bool() fait partie de la famille des fonctions de vérification de type de PHP. La bonne fonction dépend du type qui vous intéresse :

  • is_int() — vérifier les entiers.
  • is_string() — vérifier les chaînes de caractères.
  • is_array() — vérifier les tableaux.
  • is_null() — vérifier null.
  • gettype() — obtenir le type de n'importe quelle variable sous forme de chaîne.
  • boolval() — convertir une valeur en booléen plutôt que de simplement la tester.

Conclusion

is_bool() répond à une question précise : le type de cette variable est-il booléen ? Elle retourne true uniquement pour true, false, et les résultats d'expressions de comparaison ou logiques — jamais pour des chaînes truthy, des nombres ou des tableaux. Utilisez-la pour protéger les arguments de fonction, distinguer un vrai false d'une valeur "absente", et maintenir votre code en accord avec les types de données exacts attendus.

Pratique

Pratique
Que fait la fonction is_bool() en PHP ?
Que fait la fonction is_bool() en PHP ?
Was this page helpful?