Den Datentyp einer Variablen ermitteln (Thema: PHP Beispiele)

Welche Funktionen von PHP bereitgestellt werden, um den Datentyp einer Variablen zu überprüfen

1. Allgemeines

PHP ist toleranter als andere Programmiersprachen und verlangt nicht, dass für eine Variable ein fester Datentyp angegeben wird. Es gibt, genau genommen, nicht einmal die Möglichkeit dies zu tun. Dennoch hat der Wert jeder Variable einen Datentyp, welcher Einfluss auf die Verarbeitung dieses Wertes hat. Dass Addieren von Integern (ganzen Zahlen) verhält sich zum Beispiel anders als das Addieren von Strings (Zeichenketten).

2. gettype()

Um nun herauszufinden, welchen Datentyp der Wert einer Variablen hat kann gettype($var) verwendet werden. Diese Funktion erzeugt eine der nachfolgenden String-Rückgaben, die den bekannten Datentypen in PHP entsprechen: 'boolean', 'integer', 'double', 'string', 'array', 'object', 'resource', 'NULL', 'unknown type'. Floats werden durch 'double' repräsentiert.

PHP-Code
<?php
	function eineFunktion($par) {
		echo("An diese Funktion wurde ein Parameter mit Datentyp ".gettype($par)." uebergeben.\n");
	}
	
	eineFunktion(1000);
	eineFunktion(true);
	eineFunktion("test");
?>

HTML-Code: Ausgabe
An diese Funktion wurde ein Parameter mit Datentyp integer uebergeben.
An diese Funktion wurde ein Parameter mit Datentyp boolean uebergeben.
An diese Funktion wurde ein Parameter mit Datentyp string uebergeben.


3. is_*-Funktionen

Die Funktion gettype() sollte nur verwendet werden, um den Datentyp einer Variablen auszugeben. Das Testen auf spezielle Datentypen ist — mit dieser Funktion — nicht empfehlenswert, da sich die Rückgaben irgendwann einmal verändert können. Stattdessen sollten die Funktionen is_boolean($var), is_string($var), is_float($var), is_array($var), is_object($var), is_resource($var) und is_null($var) verwendet werden.

Beispiel:

PHP-Code
<?php
	function quadriere($zahl) {
		// Quadriert werden sollen durch diese Funktion nur Integer oder Floats
		// bei allen anderen Datentypen wird ein Fehler geworfen.
		if (!is_int($zahl) && !is_float($zahl)) {
			throw new Exception('Ungueltiger Parameter uebergeben. '
				.'Erwartet wurde Integer, gegeben wurde '.gettype($zahl).'.');
		}
		return ($zahl*$zahl);
	}

	// quadrieren mit 2 als Zahl
	var_dump( quadriere(2) );

	// quadrieren mit 2 als String, erzeugt einen Fehler
	try {
		var_dump( quadriere('2') );
	} catch (Exception $e) {
		echo($e->getMessage());
	}
?>

HTML-Code: Ausgabe
int(4)
Ungueltiger Parameter uebergeben. Erwartet wurde Integer, gegeben wurde string.

Kommentare (5)

Von neu nach alt
ß0
ArnoNuehm (Gast) #
ß0
ArnoNuehm (Gast) #
ß0
ArnoNuehm (Gast) #
ß0
ArnoNuehm (Gast) #
gut
peter (Gast) #