PHP - Datentypen

Es gibt verschiedene Datentypen für verschiedene Zwecke. PHP hat keine expliziten Typdefinitionen, aber der Typ einer Variablen wird durch den Typ des zugewiesenen Werts oder durch den Typ selbst bestimmt.

Null

Null kann jeder Variablen zugewiesen werden. Sie stellt eine Variable ohne Wert dar.

$foo = null;

Dadurch wird die Variable ungültig, und ihr Wert wäre undefiniert oder ungültig, wenn sie aufgerufen wird. Die Variable wird aus dem Speicher gelöscht und vom Garbage Collector gelöscht.

Boolean

Dies ist der einfachste Typ mit nur zwei möglichen Werten.

$foo = true;
$bar = false;

Booleans können verwendet werden, um den Codefluss zu steuern.

$foo = true;

if ($foo) {
    echo "true";
} else {
    echo "false";
}

Integer

Eine ganze Zahl ist eine ganze Zahl positiv oder negativ. Es kann mit einer beliebigen Zahlenbasis verwendet werden. Die Größe einer ganzzahligen Datei ist plattformabhängig. PHP unterstützt keine nicht signierten Ganzzahlen.

$foo = -3;  // negative
$foo = 0;   // zero (can also be null or false (as boolean)
$foo = 123; // positive decimal
$bar = 0123; // octal = 83 decimal
$bar = 0xAB; // hexadecimal = 171 decimal
$bar = 0b1010; // binary = 10 decimal
var_dump(0123, 0xAB, 0b1010); // output: int(83) int(171) int(10)

Float

Gleitkommazahlen, "Doubles" oder einfach "Floats" genannt sind Dezimalzahlen.

$foo = 1.23;
$foo = 10.0;
$bar = -INF;
$bar = NAN;

Array

Ein Array ist wie eine Liste von Werten. Die einfachste Form eines Arrays wird nach ganzzahliger Ebene indiziert und nach dem Index sortiert, wobei das erste Element bei Index 0 liegt.

$foo = array(1, 2, 3); // An array of integers
$bar = ["A", true, 123 => 5]; // Short array syntax, PHP 5.4+

echo $bar[0];    // Returns "A"
echo $bar[1];    // Returns true
echo $bar[123];  // Returns 5
echo $bar[1234]; // Returns null

Arrays können einem Wert auch einen anderen Schlüssel als einen Ganzzahlindex zuordnen. In PHP sind alle Arrays assoziative Arrays hinter den Kulissen, aber wenn wir deutlich von einem 'assoziativen Array' sprechen, meinen wir in der Regel eine, die einen oder mehrere Schlüssel enthält, die keine ganzen Zahlen sind.

$array = array();
$array["foo"] = "bar";
$array["baz"] = "quux";
$array[42] = "hello";
echo $array["foo"]; // Outputs "bar"
echo $array["bar"]; // Outputs "quux"
echo $array[42]; // Outputs "hello"

Strings

Eine Zeichenfolge (Zeichenkette) ist wie ein Array von Zeichen.

$foo = "bar";

Wie ein Array kann eine Zeichenfolge indiziert werden, um ihre einzelnen Zeichen zurückzugeben:

$foo = "bar";
echo $foo[0]; // Prints 'b', the first character of the string in $foo.

Object

Ein Objekt ist eine Instanz einer Klasse. Auf die Variablen und Methoden kann mit dem Operator -> zugegriffen werden.

$foo = new stdClass(); // create new object of class stdClass, which a predefined, empty class
$foo->bar = "baz";
echo $foo->bar; // Outputs "baz"
// Or we can cast an array to an object:
$quux = (object) ["foo" => "bar"];
echo $quux->foo; // This outputs "bar".

Ressource

Ressourcenvariablen enthalten spezielle Handles für geöffnete Dateien, Datenbankverbindungen, Streams, Bildbereiche und dergleichen.

$fp = fopen('file.ext', 'r'); // fopen() is the function to open a file on disk as a resource.
var_dump($fp); // output: resource(2) of type (stream)

Um den Typ einer Variablen als Zeichenfolge zu bekommen, verwenden Sie die Funktion: gettype()

echo gettype(1); // outputs "integer"
echo gettype(true); // "boolean"

Tipps

Verkettete Auswahllisten dynamisch aus einer DB-Tabelle generieren
Dieses Beispiel zeigt, wie man eine HTML-Auswahlliste (Drop-Down-Liste) dynamisch generiert, die auf den Werten einer Spalte in einer Datenbank-Tabelle beruht.
Zeitbalken
Dieses Script zeigt die vergangene Zeit mit einem farbigen Fortschrittsbalken an. Mit JavaScript oder PHP kann man die vergangene Zeit berechnen lassen und mit CSS wird dann der Fortschrittsbalken farbig angezeigt.
Browser-Sprachumschaltung
Diese Sprachumschaltung zeigt je nach der verwendeten Sprache (deutsch, englisch, ...) im Browser unterschiedlichen Inhalt an.