Forum und email

Vordefinierte Variablen

PHP bietet jedem ausgeführtem Skript eine Vielzahl von vordefinierten Variablen an. Viele dieser Variablen können jedoch nicht vollständig erläutert werden, da sie abhängig sind vom Web-Server, der Version und dem Setup des Web- Servers sowie weiteren Faktoren. Einige dieser Variablen stehen nicht zur Verfügung, wenn PHP-Skripte per Kommando-Zeilen-Aufruf ausgeführt werden. Für eine Liste dieser Variablen lesen Sie bitte den Abschnitt Vordefinierte Variablen.

Warnung

Ab PHP 4.2.0 ist der standardmäßige Wert für die PHP-Anweisung register_globals off. Dies ist eine wesentliche Änderung in PHP. Die Anweisung register_globals off beeinflusst den Satz von vordefinierten Variablen, die im globalen Bereich verfügbar sind. Um zum Beispiel DOCUMENT_ROOT zu bekommen, müssen Sie $_SERVER['DOCUMENT_ROOT'] statt $DOCUMENT_ROOT verwenden oder um $id von der URL http://www.example.com/test.php?id=3 zu bekommen $_GET['id'] statt $id oder $_ENV['HOME'] statt $HOME.

Für diese Änderung betreffende Informationen lesen Sie bitte den Konfigurations-Eintrag für register_globals, das Sicherheitskapitel über die Verwendung von Register Globals und außerdem die PHP » 4.1.0 und » 4.2.0 Release Announcements.

Die reservierten vordefinierten Variablen, wie die Superglobalen Arrays, sollten bevorzugt verwendet werden.

Ab Version 4.1.0 stehen in PHP eine zusätzliche Reihe vordefinierter Arrays zur Verfügung, die Variablen vom Webserver (gegebenenfalls), von der Umgebung und von Benutzereingaben enthalten. Diese neuen Arrays sind insofern etwas sehr Spezielles, als sie automatisch global sind -- d.h., sie stehen automatisch in jedem Bereich zur Verfügung. Deshalb sind sie auch bekannt als 'Autoglobale' oder 'Superglobale'. (Es gibt in PHP keinen Mechanismus für benutzerdefinierte Superglobale.) Die Superglobale werden nachfolgend aufgelistet, aber für eine Liste ihres Inhalts und die weitere Diskussion vordefinierter Variablen und ihres Wesens lesen Sie bitte den Abschnitt Reservierte vordefinierte Variablen. Außerdem werden Sie feststellen, dass die alten vordefinierten Variablen ($HTTP_*_VARS) noch existieren. Seit PHP 5.0.0 können Sie die Registrierung der langen von PHP vordefinierten Arrays mit der Konfigurationsoption register_long_arrays abschalten.

Hinweis: Variable Variablen Superglobale können nicht als Variable Variablen verwendet werden.

Falls bestimmte Variablen nicht unter variables_order angegeben sind, dann bleiben auch ihre entsprechenden vordefinierten Arrays leer.

PHP Superglobale
$GLOBALS
Diese Variable enthält eine Referenz zu jeder Variable, die im globalen Bereich des laufenden Skripts zur Verfügung steht. Die Schlüssel dieses Arrays sind die Namen der globalen Variablen. $GLOBALS gibt es seit PHP 3.
$_SERVER
Variablen, die vom Webserver gesetzt werden oder anderweitig direkt mit der ausführenden Umgebung des aktuellen Skripts zusammenhängen. Entspricht dem alten $HTTP_SERVER_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.
$_GET
Variablen, die dem Skript über HTTP GET geliefert werden. Entspricht dem alten $HTTP_GET_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.
$_POST
Variablen, die dem Skript über HTTP POST geliefert werden. Entspricht dem alten $HTTP_POST_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.
$_COOKIE
Variablen, die dem Skript über HTTP Cookies geliefert werden. Entspricht dem alten $HTTP_COOKIE_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.
$_FILES
Variablen, die dem Skript über HTTP Post Datei-Uploads geliefert werden. Entspricht dem alten $HTTP_POST_FILES-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist. Für mehr Informationen lesen Sie bitte Dateiuploads mit POST.
$_ENV
Variablen, die dem Skript über die Umgebung geliefert werden. Entspricht dem alten $HTTP_ENV_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.
$_REQUEST
Variablen, die dem Skript über die GET-, POST- und COOKIE-Eingabemechanismen geliefert werden und von daher nicht vertrauenswürdig sind. Die Präsenz und die Reihenfolge der Aufnahme der Variablen in dieses Array ist entsprechend der Konfigurationsanweisung variables_order definiert. Dieses Array hat in PHP vor Version 4.1.0 keine direkte Entsprechung. Siehe auch import_request_variables().
Achtung

Seit PHP 4.3.0 gibt es in $_REQUEST keine FILE-Informationen von $_FILES mehr.

Hinweis: Wenn PHP-Skripte auf der Kommandozeile ausgeführt werden, sind die Einträge argv und argc nicht in diesem Array enthalten; diese befinden sich im $_SERVER-Array.

$_SESSION
Variablen, die aktuell in der Session eines Skripts registriert sind. Entspricht dem alten $HTTP_SESSION_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist. Für mehr Informationen lesen Sie bitte den Abschnitt Session Funktionen.