Prüfen, ob eine Variable ein Boolean ist

Welche verschiedenen Möglichkeiten es in PHP gibt, eine Variable auf den Datentyp Boolean zu testen

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:

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.