Signatur
Beschreibung
is_bool() überprüft, ob der übergebene Wert vom Typ bool ist. Die Funktion gibt true zurück, wenn der Wert exakt true oder false ist – alle anderen Typen (auch 0, 1, "true" oder null) führen zu false.
Die Funktion ist besonders nützlich, wenn eine strikte Typprüfung notwendig ist, etwa bei der Validierung von Konfigurationswerten, Optionsparametern oder Rückgabewerten, bei denen boolesche Werte von Integer-Werten wie 0 und 1 unterschieden werden müssen.
Im Gegensatz zur losen Vergleichsoperation (==) oder einem einfachen Truthy-/Falsy-Test prüft is_bool() ausschließlich den tatsächlichen Datentyp und führt keine implizite Typumwandlung durch. Sie ist damit vergleichbar mit gettype($value) === 'boolean' oder $value instanceof bool (was in PHP nicht erlaubt ist).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value Pflicht | mixed | Der zu prüfende Wert. Kann von einem beliebigen Typ sein. |
Rückgabewert
true zurück, wenn value vom Typ bool ist, andernfalls false.Beispiele
Einfache Typprüfung verschiedener Werte
<?php
var_dump(is_bool(true)); // true
var_dump(is_bool(false)); // true
var_dump(is_bool(1)); // false — Integer, kein Boolean
var_dump(is_bool(0)); // false — Integer, kein Boolean
var_dump(is_bool('true')); // false — String, kein Boolean
var_dump(is_bool(null)); // false — NULL, kein Boolean
Validierung eines Konfigurationswertes
<?php
function setDebugMode(mixed $value): void {
if (!is_bool($value)) {
throw new InvalidArgumentException(
'Der Debug-Modus muss ein boolescher Wert sein, ' . gettype($value) . ' gegeben.'
);
}
echo 'Debug-Modus: ' . ($value ? 'aktiviert' : 'deaktiviert') . PHP_EOL;
}
setDebugMode(true); // OK
setDebugMode(false); // OK
setDebugMode(1); // Wirft InvalidArgumentException
Unterschied zwischen is_bool und Truthy-Prüfung
<?php
$values = [true, false, 1, 0, '', 'false', null];
foreach ($values as $val) {
$display = var_export($val, true);
$isBool = is_bool($val) ? 'ja' : 'nein';
$truthy = $val ? 'truthy' : 'falsy';
echo "Wert: {$display} => is_bool: {$isBool}, Truthy/Falsy: {$truthy}\n";
}
// Wichtig · Fallstricke
Strikte Typisierung als Alternative: In modernem PHP (ab 7.0) kann in typisierten Funktionen mit bool als Parametertyp und declare(strict_types=1) die Typprüfung direkt durch PHP erzwungen werden, was is_bool() in solchen Kontexten überflüssig macht.
Vorsicht bei JSON-Daten: Beim Dekodieren von JSON mit json_decode() werden boolesche JSON-Werte korrekt als PHP-bool abgebildet. Trotzdem ist eine Prüfung mit is_bool() sinnvoll, wenn sichergestellt werden soll, dass der Wert kein Integer oder ein anderer Typ ist.