1. Erläuterungen
Variablen vom Typ Boolean enthalten Wahrheitswerte, also entweder true oder false. Um herauszufinden, ob eine beliebige Variable einen Boolean-Wert enthält können verschiedene Ansätze verwendet werden:
- is_bool($var): Die Funktion is_bool() prüft, ob eine Variable vom Datentyp Boolean ist und gibt true oder false zurück.
- Vergleich mittels „===” bzw. ($var===true || $var===false): Vergleicht man die Variable mit dem Operator „===” mit true und false und ist sie mit einem der Werte identisch, dann handelt es sich um einen Boolean-Wert. Da die Funktionalität von is_bool($var) identisch ist, sollte die Funktion vorgezogen werden.
- Vergleich mittels „==” bzw. ($var==true || $var==false): Verwendet man stattdessen „==” als Operator, dann ist der Test toleranter. So würde er beispielsweise auch für 0 (Integer) oder "" (leerer String) ergeben, dass es sich um einen Boolean-Wert handelt.
- gettype($var): Wendet man gettype() auf eine Variable an, dann erhält man den Datentyp der Variablen in Form eines Strings zurück. Dieser kann ausgewertet werden. Im Falle von Boolean-Variablen muss er den Wert „boolean” haben.
Der empfohlene Weg zur Prüfung der Variablen ist die Verwendung von is_bool(). Er ist für andere Entwickler lesbar und gleichzeitig performant.
2. Beispiele
In allen Beispielen wird eine mögliche Funktion dargestellt, die einen Boolean-Wert als Parameter erwartet. Zu Beginn der Funktion wird daher geprüft, ob wirklich ein Boolean-Wert übergeben wurde und andernfalls ein Fehler erzeugt.
2.1. is_bool($var)
PHP-Code
<?php
function setShowSomething($bool) {
if (!is_bool($bool)) {
throw new Exception('Funktion setShowSomething erwartet einen Boolean-Wert.');
}
echo("setShowSomething erfolgreich aufgerufen.\n");
}
try {
setShowSomething(true);
setShowSomething(false);
setShowSomething(0);
} catch (Exception $e) {
echo('Fehler mit Nachricht "' . $e->getMessage() . '" in Zeile ' . $e->getLine() . '.');
}
?>
HTML-Code: Ausgabe
setShowSomething erfolgreich aufgerufen. setShowSomething erfolgreich aufgerufen. Fehler mit Nachricht "Funktion setShowSomething erwartet einen Boolean-Wert." in Zeile 4.
2.2. Vergleich mittels "==="
PHP-Code
<?php
function setShowSomething($bool) {
if ($bool!==true && $bool!==false) {
throw new Exception('Funktion setShowSomething erwartet einen Boolean-Wert.');
}
echo("setShowSomething erfolgreich aufgerufen.\n");
}
try {
setShowSomething(true);
setShowSomething(false);
setShowSomething(0);
} catch (Exception $e) {
echo('Fehler mit Nachricht "' . $e->getMessage() . '" in Zeile ' . $e->getLine() . '.');
}
?>
HTML-Code: Ausgabe
setShowSomething erfolgreich aufgerufen. setShowSomething erfolgreich aufgerufen. Fehler mit Nachricht "Funktion setShowSomething erwartet einen Boolean-Wert." in Zeile 4.
2.3. Vergleich mittels "=="
PHP-Code
<?php
function setShowSomething($bool) {
if ($bool!=true && $bool!=false) {
throw new Exception('Funktion setShowSomething erwartet einen Boolean-Wert.');
}
echo("setShowSomething erfolgreich aufgerufen.\n");
}
try {
setShowSomething(true);
setShowSomething(false);
setShowSomething(0);
} catch (Exception $e) {
echo('Fehler mit Nachricht "' . $e->getMessage() . '" in Zeile ' . $e->getLine() . '.');
}
?>
HTML-Code: Ausgabe
setShowSomething erfolgreich aufgerufen. setShowSomething erfolgreich aufgerufen. setShowSomething erfolgreich aufgerufen.
2.4. Auswertung über gettype()
PHP-Code
<?php
function setShowSomething($bool) {
if (gettype($bool) !== 'boolean') {
throw new Exception('Funktion setShowSomething erwartet einen Boolean-Wert.');
}
echo("setShowSomething erfolgreich aufgerufen.\n");
}
try {
setShowSomething(true);
setShowSomething(false);
setShowSomething(0);
} catch (Exception $e) {
echo('Fehler mit Nachricht "' . $e->getMessage() . '" in Zeile ' . $e->getLine() . '.');
}
?>
HTML-Code: Ausgabe
setShowSomething erfolgreich aufgerufen. setShowSomething erfolgreich aufgerufen. Fehler mit Nachricht "Funktion setShowSomething erwartet einen Boolean-Wert." in Zeile 4.