is_bool()
Die Funktion is_bool() ist eine eingebaute PHP-Funktion, die prüft, ob eine Variable ein boolean ist oder nicht. Ein boolean ist ein Datentyp mit zwei
Einführung
is_bool() ist eine eingebaute PHP-Funktion, die prüft, ob eine Variable einen boolean-Wert enthält. Ein boolean ist der einfachste Datentyp in PHP: Er kann nur true oder false sein.
Das Wichtigste dabei ist, dass is_bool() den Typ der Variable prüft, nicht ob der Wert "truthy" oder "falsy" ist. Ein string wie "true", die Ganzzahl 1 oder ein leeres array werden in einer if-Anweisung als truthy oder falsy ausgewertet, aber keiner von ihnen ist tatsächlich ein boolean, daher gibt is_bool() für alle false zurück. Nur ein Wert, der aus einem boolean-Literal (true/false) oder einem Vergleichs- bzw. logischen Ausdruck stammt (der immer einen boolean erzeugt), besteht den Test.
Diese Seite behandelt die Syntax, was is_bool() für die Werte zurückgibt, die Sie wahrscheinlich testen werden, und wann Sie es im echten Code verwenden würden.
Syntax
is_bool(mixed $value): boolDie Funktion nimmt ein einzelnes Argument, $value — die Variable, die Sie untersuchen möchten — und gibt true zurück, wenn dieser Wert vom Typ boolean ist, andernfalls false. Die Funktion verändert die Variable nie und löst niemals einen Fehler aus: Sie gibt immer selbst einen boolean zurück.
Verwendungsbeispiel
Das folgende Beispiel testet einen echten boolean gegen einen string, damit Sie genau sehen können, was ausgegeben wird:
Beispiel von PHP is_bool()
Achten Sie genau auf die Ausgabe: Wenn Sie einen boolean echoen, wird true zum string "1" und false zu einem leeren string "". Deshalb sieht die zweite Zeile leer aus — is_bool($name) hat false zurückgegeben, und PHP gibt false als nichts aus. Um beim Debuggen ein eindeutiges Ergebnis zu sehen, verwenden Sie var_dump() anstelle von echo, da es bool(true) / bool(false) ausgibt.
Was als boolean gilt
Ein häufiger Fehler ist die Annahme, dass "truthy"-Werte booleans sind. Das sind sie nicht. Die folgende Tabelle zeigt, was is_bool() für verschiedene Werte zurückgibt:
<?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
?>Die Werte 1, "true", null und [] sind in Bedingungen alle falsy oder truthy, aber ihr Typ ist Ganzzahl, string, null und array — daher lehnt is_bool() sie ab.
Wann man es verwendet
is_bool() ist am nützlichsten an den Grenzen Ihres Codes, wo der Datentyp eine Rolle spielt:
- Validierung von Funktionsargumenten. Wenn eine Funktion ein striktes Ein/Aus-Flag erwartet, ermöglicht
is_bool(),"yes",1odernullabzulehnen, bevor sie subtile Fehler verursachen. - Unterscheidung von
falseund "kein Wert". Funktionen wiestrpos()geben bei einem Fehlerfalsezurück, bei Erfolg aber eine gültige0. Die Typprüfung mitis_bool()(oder dem Operator===) vermeidet eine Verwechslung der beiden. - Umgang mit gemischter Konfiguration. Aus JSON oder einem Formular geladene Einstellungen können als strings ankommen;
is_bool()teilt Ihnen mit, ob ein Wert bereits ein echter boolean ist oder noch mit boolval() konvertiert werden muss.
<?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
?>Verwandte Funktionen
is_bool() ist eine der Typprüfungsfunktionen in PHP. Die richtige Funktion hängt vom Typ ab, der Sie interessiert:
- is_int() — Prüfung auf Ganzzahlen.
- is_string() — Prüfung auf strings.
- is_array() — Prüfung auf arrays.
- is_null() — Prüfung auf
null. - gettype() — Gibt den Typ einer beliebigen Variable als string zurück.
- boolval() — Konvertiert einen Wert in einen boolean, anstatt ihn nur zu testen.
Fazit
is_bool() beantwortet eine präzise Frage: Ist der Typ dieser Variable boolean? Sie gibt true nur für true, false und die Ergebnisse von Vergleichs- oder logischen Ausdrücken zurück — niemals für truthy-strings, Zahlen oder arrays. Verwenden Sie sie, um Funktionsargumente zu schützen, ein echtes false von einem "fehlenden" Wert zu unterscheiden und sicherzustellen, dass Ihr Code mit den genauen Datentypen arbeitet, die Sie erwarten.