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.