Prüfen, ob eine Variable ein Boolean ist (Thema: PHP Beispiele)

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:

  • 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.

Kommentare (0)

Von neu nach alt