Grundlegendes
Variablen werden in PHP dargestellt durch ein Dollar-Zeichen ($)
gefolgt vom Namen der Variablen. Bei Variablen-Namen wird
zwischen Groß- und Kleinschreibung unterschieden (case-sensitive).
Variablen-Namen werden in PHP nach den gleichen Regeln wie
andere Bezeichner erstellt. Ein gültiger Variablen-Name beginnt
mit einem Buchstaben oder einem Unterstrich ("_"), gefolgt von
einer beliebigen Anzahl von Buchstaben, Zahlen oder Unterstrichen.
Als regulärer Ausdruck (regular expression) würde das wie folgt
ausgedrückt: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'.
Hinweis:
Unserem Zweck entspricht also ein Buchstabe von a bis z bzw.
A bis Z oder einem ASCII-Zeichen von 127 bis 255 (0x7f bis 0xff).
Hinweis:
$this ist eine spezielle Variable der
kein Wert zugewiesen werden kann.
Information zu Funktionen im Zusammenhang mit Variablen
finden Sie im Abschnitt
Funktionen zur Behandlung von Variablen.
Variablen werden durch ihren Wert bestimmt. Das heißt,
wenn Sie einer Variablen einen Ausdruck zuweisen, wird der gesamte
Inhalt des Originalausdrucks in die Zielvariable kopiert. Die
Folge ist, dass eine Variable, die ihren Inhalt von einer anderen
Variablen erhalten hat, ihren Inhalt behält, auch wenn Sie danach
den Inhalt der anderen (Quell- / Ursprungs-)Variablen ändern. Die
Inhalte der Ziel- und Quellvariablen sind also insoweit unabhängig
voneinander. Für weitere Informationen lesen Sie bitte das Kapitel
unter Expressions / Ausdrücke.
PHP bietet eine andere Möglichkeit der Wertzuweisung
bei Variablen: Zuweisung durch
Referenzierung. Das bedeutet, dass der Wert der neuen
Variablen eine Referenz zur Ursprungs-Variablen darstellt (mit
anderen Worten: Der Wert ist ein Alias bzw. Zeiger auf den Inhalt
der Ursprungsvariablen). Beide Variablen zeigen also auf die
selbe(n) Speicherstelle(n). Änderungen der neuen Variablen ändern
auch deren Ursprungs-Variable und umgekehrt.
Für die Zuweisung per Referenz müssen Sie lediglich ein &
der (Ausgangs-, Quell-) Variablen voranstellen, die
sie einer anderen Variablen zuweisen wollen. Der folgende Skript-
Ausschnitt wird zweimal 'Mein Name ist Bob' ausgeben:
Zu beachten ist, dass nur Variablenbezeichner referenziert
werden können.
Es ist in PHP nicht zwingend notwendig Variablen zu initialisieren, es
wird aber trotzdem empfohlen. Nicht initialisierte Variablen haben einen
Vorgabewert der vom Typ abhängt - FALSE Null, leerer String oder leeres
Array.
Beispiel #1 Vorgabewerte uninitialisierter Variablen
<?php
echo ($unset_bool ? "true" : "false"); // false
$unset_int += 25; // 0 + 25 => 25
echo $unset_string . "abc"; // "" . "abc" => "abc"
$unset_array[3] = "def"; // array() + array(3 => "def") => array(3 => "def")
?>
Es ist problematisch sich auf den Vorgabewert einer nicht
initialisierten Variable zu verlassen wenn Sie Dateien inkludieren
die die gleichen Variablennamen benutzen.
Wenn register_globals
aktiviert ist führt dies zu einem extremen Sicherheitsproblem.
Bei Zugriffen auf nicht initialisierte Variablen wird ein
Fehler der Stufe E_NOTICE
ausgegeben, dies trifft allerdings nicht auf das Anfügen
von Elementen an nicht initialisierte Arrays zu.
Das isset() Sprachkonstrukt kann genutzt werden
um zu prüfen ob eine Variable bereits initialisiert wurde.