Thema in Kurzform
In PHP stehen verschiedene Funktionen zur Verfügung, die speziell für die Untersuchung von Variablen geschaffen wurden. Wir können mithilfe dieser Funktionen herausfinden, welchen Datentyp eine Variable speichert oder ob sie überhaupt einen Wert enthält.
// Schnelles Code-Beispiel
$name = "Pocket Rocket";
var_dump($name); // string(13) "Pocket Rocket"
Führen wir die Funktion var_dump aus, wird der Wert, den wir in Parametern übergeben, untersucht. Es werden dann Informationen am Bildschirm ausgegeben, von denen wir den Datentyp und Inhalt des eingegebenen Werts einsehen können.
Wir sind dabei nicht auf einen Parameter beschränkt, sondern können die Funktion gleich mit mehreren Werten bzw. Variablen füttern:
$name = "Pocket Rocket";
$isAlive = false;
$num = 234;
var_dump($name, $isAlive, $num);
Am Bildschirm wird nun Folgendes angezeigt:
string(13) "Pocket Rocket" bool(false) int(234)
Noch simpler ist die Funktion gettype. Wir können einen Wert bzw. eine Variable als Paramter übergeben und erhalten dann einen String zurück, der den Datentyp ausdrückt. Hier ein Beispiel:
$tier = "Falke";
$alterTier = 7;
$klassifikation = 2.43;
$imEinsatz = true;
echo gettype($tier) . '<br>';
echo gettype($alterTier) . '<br>';
echo gettype($klassifikation) . '<br>';
echo gettype($imEinsatz);
Der Output im Browser sieht damit so aus:
string
integer
double
boolean
Welche der beiden Funktionen Sie verwenden (var_dump oder gettype), hängt von der Situation ab. Wollen Sie nach der Abfrage des Datentyps diesen zur Grundlage für weitere Programmierschritte verwenden, benutzen Sie am besten gettype. Geht es Ihnen aber einfach nur darum, eine schnelle Information über den Datentyp verschiedener Variablen zu erhalten, nutzen Sie var_dump.
Es gibt außerdem Funktionen, mit denen wir gezielt danach fragen können, ob ein Wert von einem bestimmten Datentyp ist oder nicht.
Merke: Die Funktionen liefern entweder 1 (bei true) oder überhaupt nichts (bei false) zurück:
Die ersten vier Funktionen sind im Wesentlichen selbsterklärend.
Die Funktion is_numeric checkt ab, ob der übergebene Parameter eine beliebige Zahl (z.B. 100 oder 95.32) oder ein numerischer String ist. Ein numerischer String ist ein String, der aus Zahlen besteht (z.B. "1234"). Bei true wird entsprechend 1 geliefert.
Wir haben im Kapitel über die PHP-Datentypen schon erfahren, wozu wir den Wert null in der Programmierung benötigen. Ob eine Variable einen solchen null-Wert enthält, können wir mit der Funktion is_null prüfen. Diese liefert true zurück, wenn die Variable null enthält.
Eine Variable, die null ist, ist automatisch auch empty („leer“). Klingt logisch! Wir können dies mit der Funktion emptyüberprüfen. Diese Funktion checkt, ob eine Variable keinen Wert enthält. Ist das Ergebnis true, ist die Variable leer.
Es gibt aber mehrere Fälle, in denen eine Variable auch noch als empty gilt. Eine Variable ist nämlich auch dann empty, wenn sie 1.) einen „leeren“ String "", 2.) die String-Numerale "0" oder 3.) den Integer-Wert 0 hat. Außerdem gilt sie empty, wenn sie 4.) den booleschen Wert false trägt. Die Funktion liefert übrigens auch dann true zurück, wenn die Variable 5.) nicht definiert wurde.
Schließlich erweist sich im Programmieralltag die Funktion isset als sehr nützlich. Diese prüft, ob eine Variable existiert und ob sie gleichsam nicht null ist. Ist dies der Fall, liefert sie true.
Noch einmal kurz und knackig:
Und hier alle möglichen Fälle in der Übersicht:
is_null | empty | isset | |
---|---|---|---|
$var="Morpheus"; | false | false | true |
$var=null; | true | true | false |
$var=""; | false | true | true |
$var=" "; | false | false | true |
$var="0"; | false | true | true |
$var=0; | false | true | true |
$var=true; | false | false | true |
$var=false; | false | true | true |
Variable nicht definiert | Fehler! | true | false |
Nicht vergessen: Die Funktionen liefern entweder 1 (bei true) oder nichts (bei false) zurück!
Java Basics
[Java einrichten] [Variablen] [Primitive Datentypen] [Operatoren] [if else] [switch-case] [Arrays] [Schleifen]
Objektorientierung
[Einstieg] [Variablen ] [Konstruktor] [Methoden] [Rekursion] [Statische Member] [Initializer] [Pass-by-value] [Objektsammlungen] [Objektinteraktion] [Objekte löschen]
Klassenbibliothek
[Allgemeines] [String ] [Math] [Wrapper] [Scanner] [java.util.Arrays] [Date-Time-API]
Vererbung
[Einstieg Vererbung] [Konstruktoren bei Vererbung ] [Der protected Zugriffsmodifikator] [Abstrakte Klassen und Methoden] [Polymorphie in Java] [Typumwandlung] [Die Klasse Object] [Die toString()-Methode] [Objekte vergleichen] [Was ist ein Interface?]