W3docs

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): bool

Die 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()

php— editable, runs on the server

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", 1 oder null abzulehnen, bevor sie subtile Fehler verursachen.
  • Unterscheidung von false und "kein Wert". Funktionen wie strpos() geben bei einem Fehler false zurück, bei Erfolg aber eine gültige 0. Die Typprüfung mit is_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.

Übungen

Übung
Was macht die Funktion is_bool() in PHP?
Was macht die Funktion is_bool() in PHP?
Was this page helpful?