Zum Inhalt springen

Variablen, Datentypen und Arrays verständlich erklärt

Drei Begriffe, die in jedem PHP-Projekt vorkommen. Dieser Text erklärt sie an lauffähigen Beispielen und zeigt die Stellen, an denen sich auch erfahrene Entwickler noch vertun.

  • Für wenEinsteiger, technisch Interessierte
  • NiveauGrundlagen
  • Lesezeitetwa 7 Minuten
  • Stand16. Oktober 2026

Das lernen Sie

  • Was eine Variable ist und wie PHP mit Typen umgeht
  • Welche Datentypen es gibt und wann welcher passt
  • Wie Arrays aufgebaut sind — und warum es nur eine Sorte gibt
  • Drei Vergleichsfallen, die echte Fehler erzeugen

Variablen: ein Name für einen Wert

Eine Variable ist ein Name, unter dem ein Wert abgelegt wird. In PHP beginnt jeder Variablenname mit einem Dollarzeichen. Einen Typ muss man nicht angeben — PHP leitet ihn aus dem Wert ab.

PHPgeprüft mit PHP 8.3
$anzahl = 3;            // int
$preis = 19.99;         // float
$name = 'Auftrag';      // string
$offen = true;          // bool
$bearbeiter = null;     // null

echo gettype($anzahl);  // integer
echo gettype($preis);   // double
gettype() nennt den Typ zur Laufzeit. „double" ist dort die historische Bezeichnung für float.

Dass man den Typ nicht angeben muss, heißt nicht, dass man ihn nicht angeben sollte. In Funktionssignaturen und Eigenschaften sind Typangaben seit Jahren üblich und fangen Fehler ab, bevor sie Daten erreichen.

Die Datentypen, die im Alltag vorkommen

  • int — ganze Zahlen: Anzahlen, Kennungen, Jahre.
  • float — Kommazahlen. Für Geldbeträge mit Vorsicht, dazu unten mehr.
  • string — Text. Auch eine Postleitzahl oder eine Artikelnummer ist Text, keine Zahl.
  • bool — wahr oder falsch.
  • array — eine geordnete Sammlung von Werten.
  • null — „kein Wert". Nicht dasselbe wie 0 oder eine leere Zeichenkette.
  • object — eine Instanz einer Klasse.

Die Unterscheidung zwischen Zahl und Text ist keine Formsache. Eine Postleitzahl als Zahl zu speichern verliert die führende Null, und eine Artikelnummer als Zahl verliert sie ebenso. Bezeichner, bei denen führende Nullen oder das Format zählen (Postleitzahl, Artikelnummer, Telefonnummer), gehören in einen Text.

Arrays: eine Sorte für zwei Aufgaben

Andere Sprachen trennen Liste und Zuordnung. PHP hat nur ein Array, das beides kann: Es ist immer eine geordnete Abbildung von Schlüsseln auf Werte. Ohne eigene Schlüssel vergibt PHP fortlaufende Zahlen ab 0.

PHPgeprüft mit PHP 8.3
// Liste — Schluessel 0, 1, 2 entstehen automatisch
$farben = ['rot', 'gruen', 'blau'];
echo $farben[1];            // gruen

// Zuordnung — eigene Schluessel
$auftrag = [
    'nummer' => 10244,
    'kunde'  => 'Beispiel GmbH',
    'offen'  => true,
];
echo $auftrag['kunde'];     // Beispiel GmbH

// Anhaengen
$farben[] = 'gelb';
echo count($farben);        // 4
Beide Formen sind dasselbe Sprachkonstrukt. Deshalb lassen sie sich auch mischen — was man trotzdem selten tun sollte.

Verschachtelte Arrays sind der Normalfall, sobald es um echte Daten geht: eine Liste von Aufträgen ist ein Array, dessen Werte wieder Arrays sind. Ab einer gewissen Tiefe lohnt sich stattdessen eine Klasse — sie sagt im Namen, was sie enthält, und ein Tippfehler im Schlüssel fällt sofort auf.

Ein Beispiel aus der Praxis

Drei Vergleichsfallen

PHPgeprüft mit PHP 8.3
// 1. Lose Gleichheit vergleicht nach Umwandlung
var_dump(0 == 'abc');       // false (seit PHP 8)
var_dump('1' == '01');      // true  — beide werden Zahlen
var_dump('1' === '01');     // false — Typ und Wert

// 2. Kommazahlen sind nicht exakt
var_dump(0.1 + 0.2 == 0.3); // false

// 3. null, 0 und '' sind alle "leer"
var_dump(empty('0'));       // true  — ueberrascht viele
var_dump() zeigt Typ und Wert. Der erste Fall verhielt sich vor PHP 8 anders: 0 == "abc" war dort true.

Die Lehre aus allen dreien: Vergleichen Sie Skalare (Zahlen, Texte, Wahrheitswerte) mit drei Gleichheitszeichen; für Objekte prüft === nur, ob es dasselbe Objekt ist, hier vergleicht man gezielt die Werte oder verwendet eine Methode wie equals()., prüfen Sie auf null mit `$wert === null` statt mit `empty()`, und Rechnen Sie Geldbeträge nicht mit Kommazahlen, sondern in ganzen Cent oder mit einer Festkomma-Bibliothek (z. B. BCMath oder eine Geldbetrags-Klasse), wenn auch Bruchteile von Cent vorkommen..

Häufige Missverständnisse

PHP hat Typen, man muss sie nur nicht hinschreiben. Mit `declare(strict_types=1)` am Dateianfang prüft PHP Typangaben sogar streng, statt stillschweigend umzuwandeln.

Es kann eine Liste sein. Technisch ist es immer eine Abbildung von Schlüsseln auf Werte — deshalb bleiben nach dem Entfernen eines Elements Lücken in der Nummerierung.

Sie sind es nicht: 0,1 + 0,2 ergibt nicht exakt 0,3. In der Buchhaltung summieren sich solche Abweichungen.

Weiterführende Quellen

Über den Autor

Fabian Lücker ist geschäftsführender Gesellschafter der PHP-Schmiede KG in Rheine und seit 2007 in der Softwareentwicklung tätig. Er verantwortet Entwicklung und Konzeption und schreibt hier über Entscheidungen, die in echten Projekten anfallen.