W3docs

Einführung in PHP-Variablen

In PHP ist eine Variable ein benannter Speicherort für Werte. Variablen werden durch ein Dollarzeichen ($) gefolgt vom Variablennamen angegeben.

In PHP ist eine Variable ein benannter Container, der einen Wert im Speicher ablegt. Variablen werden durch ein Dollarzeichen ($) gefolgt vom Variablennamen gekennzeichnet. Der Wert, den eine Variable enthält, kann jederzeit während der Ausführung eines PHP-Skripts gesetzt, geändert und ausgelesen werden – das macht ein Skript dynamisch statt zu einem festen Ausgabeblock.

Dieses Kapitel behandelt, wie man Variablen deklariert, welche Benennungsregeln einzuhalten sind, welche Datentypen eine Variable aufnehmen kann, wie PHP den Typ einer Variable automatisch bestimmt und welche alltäglichen Operationen man auf Variablen anwendet.

Eine Variable deklarieren

Eine Variable wird in dem Moment erstellt, in dem ihr ein Wert zugewiesen wird. PHP kennt kein separates „Deklarations"-Schlüsselwort – die Zuweisung ist die Deklaration:

PHP-Variable definieren

<?php
$variable_name = value;

Hier ist $variable_name der Name und value das, was darin gespeichert wird. Ein vollständiges, funktionierendes Beispiel:

<?php
$greeting = "Hello, World!";
$year     = 2024;

echo $greeting;   // Hello, World!
echo "\n";
echo $year;       // 2024

Ausgabe:

Hello, World!
2024

Man muss einer Variable bei ihrer ersten Erwähnung keinen Wert zuweisen, aber das Lesen einer nie zugewiesenen Variable erzeugt eine Warnung und ergibt NULL. Deshalb sollte man immer vor der Verwendung zuweisen.

Benennungsregeln

Ein gültiger PHP-Variablenname:

  • Beginnt mit einem Buchstaben oder einem Unterstrich (_) – niemals mit einer Ziffer.
  • Enthält nach dem ersten Zeichen nur Buchstaben, Ziffern und Unterstriche.
  • Ist Groß-/Kleinschreibung-sensitiv: $name, $Name und $NAME sind drei verschiedene Variablen.
<?php
$user_age = 30;   // valid
$_token   = "ab"; // valid (starts with underscore)
$2cool    = 1;    // INVALID — cannot start with a digit

Konventionell verwenden PHP-Variablen snake_case ($first_name), obwohl camelCase ($firstName) ebenfalls verbreitet ist. Wähle einen Stil und bleibe dabei.

Datentypen, die eine Variable aufnehmen kann

PHP ist dynamisch typisiert: Man deklariert nie einen Typ, und dieselbe Variable kann im Laufe ihrer Lebensdauer verschiedene Typen enthalten. Der Typ wird aus dem zugewiesenen Wert abgeleitet.

  • String – eine Zeichenfolge: $name = "John Doe";
  • Integer – eine ganze Zahl: $age = 25;
  • Float – eine Zahl mit Dezimalpunkt: $average = 7.5;
  • Booleantrue oder false: $is_active = true;
  • Array – eine geordnete Sammlung von Werten: $fruits = ["apple", "banana", "orange"];
  • Object – eine Instanz einer Klasse: $person = new Person();
  • NULL – eine Variable ohne Wert: $email = null;

Mit var_dump() kann man zur Laufzeit Wert und Typ einer Variable untersuchen:

<?php
$age     = 25;
$average = 7.5;
$name    = "Sara";

var_dump($age);
var_dump($average);
var_dump($name);

Ausgabe:

int(25)
float(7.5)
string(4) "Sara"

Einen genaueren Blick auf jeden Typ bietet PHP-Datentypen.

Lose Typisierung und Type Juggling

Da der Typ einer Variable von ihrem Wert abhängt, ändert eine Neuzuweisung den Typ:

<?php
$x = 10;       // $x is an integer
$x = "ten";    // now $x is a string — perfectly legal
$x = 3.14;     // now $x is a float

PHP konvertiert Typen auch automatisch in vielen Ausdrücken (sogenanntes Type Juggling). Zum Beispiel wird ein numerischer string in der Arithmetik als Zahl behandelt:

<?php
$result = "5" + 3;
echo $result;   // 8 — the string "5" is converted to the integer 5

Diese Bequemlichkeit kann einen überraschen. Wenn ein Wert einen bestimmten Typ haben muss, sollte man ihn explizit casten: (int) $value, (float) $value oder (string) $value.

Operationen auf Variablen

Sobald man Variablen hat, kann man sie kombinieren und vergleichen.

Zuweisung – einen Wert speichern:

<?php
$name = "John Doe";

Arithmetik – addieren, subtrahieren, multiplizieren usw.:

<?php
$a = 8;
$b = 3;
$sum = $a + $b;
echo $sum;   // 11

Vergleich – die Beziehung zwischen Werten prüfen; das Ergebnis ist ein boolean:

<?php
$a = 5;
$b = 5;
$is_equal = ($a == $b);
var_dump($is_equal);   // bool(true)

Verkettung – Strings mit dem Punkt-Operator (.) verbinden:

<?php
$first_name = "John";
$last_name  = "Doe";
$full_name  = $first_name . " " . $last_name;
echo $full_name;   // John Doe

Die vollständige Liste der Operatoren findet sich unter PHP-Operatoren.

Gültigkeitsbereich von Variablen

Wo eine Variable deklariert wird, bestimmt, wo sie gelesen werden kann. Eine Variable, die im Hauptbereich eines Skripts erstellt wurde, ist nicht automatisch innerhalb einer Funktion verfügbar und umgekehrt:

<?php
$message = "outside";

function show() {
    echo $message;   // Notice: undefined variable — scope does not reach in
}

show();

Um eine äußere Variable innerhalb einer Funktion zu verwenden, übergebe sie als Argument oder importiere sie mit dem Schlüsselwort global. Der Gültigkeitsbereich ist eine häufige Fehlerquelle für Einsteiger. Es lohnt sich daher, das dedizierte Kapitel über den PHP-Variablen-Gültigkeitsbereich zu lesen.

Konstanten vs. Variablen

Wenn sich ein Wert niemals ändern darf, verwendet man eine Konstante statt einer Variable. Konstanten haben kein $-Präfix und werden mit define() oder dem Schlüsselwort const definiert. Einzelheiten dazu finden sich unter PHP-Konstanten.

Fazit

PHP-Variablen sind die Bausteine jedes Skripts: Sie speichern und verarbeiten die Daten, mit denen das Programm arbeitet. Die wichtigsten Erkenntnisse sind: Variablen beginnen mit $, Namen sind Groß-/Kleinschreibung-sensitiv und dürfen nicht mit einer Ziffer beginnen, und PHP leitet den Typ aus dem Wert ab, sodass eine einzelne Variable im Laufe ihrer Lebensdauer Strings, Zahlen, Arrays, Objekte oder NULL enthalten kann. Von hier aus geht es weiter mit PHP-Datentypen und PHP-Operatoren, um Variablen in der Praxis einzusetzen.

Übungen

Übung
Welche der folgenden Aussagen über PHP-Variablen sind wahr?
Welche der folgenden Aussagen über PHP-Variablen sind wahr?
Was this page helpful?