Vordefinierte Variablen

PHP unterstützt eine größere Anzahl vordefinierter Variablen in allen Skripten. Die Variablen repräsentieren die gesamte Spannweite von externen Variablen über built-in-Umgebungsvariablen, letzte Fehlermeldungen bis zu empfangenen Headern.

Lesen Sie ebenfalls die den FAQ-Abschnitt "Wie wirkt sich register_globals auf meine Skripte aus?"

Superglobals

Superglobals sind Built-in-Variablen, die immer in allen Gültigkeitsbereichen verfügbar sind

Beschreibung

Etliche vordefinierte Variablen in PHP sind sogenannte "Superglobals", das bedeutet, sie sind in allen Gültigkeitsbereichen (s.g. Scopes) eines Skripts verfügbar. Daher gibt es keinen Grund, global $variable; zu verwenden, um auf sie innerhalb einer Funktion oder Methode zuzugreifen.

Diese Superglobals sind:

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV

Changelog

Version Beschreibung
4.1.0 Superglobals wurden in PHP eingeführt.

Anmerkungen

Hinweis: Verfügbarkeit der Variablen

Standardmäßig sind alle Superglobals verfügbar, allerdings haben einige Einstellung in PHP Einfluss auf ihre Verfügbarkeit. Für weitere Informationen lesen Sie bitte die Dokumentation zu variables_order.

Hinweis: Abwicklung mit register_globals

Sollte die nicht mehr empfohlene Direktive register_globals auf on gesetzt sein, werden die davon betroffenen Variablen ebenfalls im globalen Gültigkeitsbereich des Skripts sichtbar. So existiert zum Beispiel $_POST['foo'] gleichzeitig als $foo.

Wenn Sie mehr über das Thema wissen wollen, werfen Sie am besten einen Blick in die FAQ "Wie wirkt sich register_globals auf meine Skripte aus?"

Hinweis: Variable Variablen

Superglobals können nicht als variable Variablen innerhalb von Funktionen oder Klassenmethoden verwendet werden.

$GLOBALS

Referenziert alle Variablen, die im globalen Gültigkeitsbereich vorhanden sind

Beschreibung

Ein assoziatives Array, das Referenzen auf alle Variablen enthält, die derzeit im globalen Gültigkeitsbereich (Scope) des Skripts bekannt sind. Die Namen der jeweiligen Variablen sind die Schlüsselwerte, um auf den Inhalt der jeweils referenzierten Variablen zuzugreifen.

Beispiele

Beispiel #1 $GLOBALS-Beispiel

<?php
function test() {
    
$foo "local variable";

    echo 
'$foo in global scope: ' $GLOBALS["foo"] . "\n";
    echo 
'$foo in current scope: ' $foo "\n";
}

$foo "Example content";
test();
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

$foo in global scope: Example content
$foo in current scope: local variable

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Hinweis: Verfügbarkeit der Variablen

Im Gegensatz zu allen anderen Superglobals ist $GLOBALS notwendigerweise immer in PHP verfügbar.

$_SERVER

$HTTP_SERVER_VARS [entfernt]

Informationen über Server und Ausführungsumgebung

Beschreibung

$_SERVER ist ein Array, das Informationen wie Header, Pfade und die verschiedenen Wege, das Skript anzusprechen beinhaltet. Die Einträge in diesem Array werden vom Webserver erstellt. Es gibt keine Garantie dafür, dass jeder Webserver alle möglichen Einträge unterstützt - Server können einige weglassen oder andere Einträge unterstützen, die hier nicht aufgeführt sind. Das meint, die meisten der Variablen werden in der» CGI 1.1-Spezifikation ausgewiesen, daher sollten Sie diese als von Ihrem Webserver unterstützt erwarten können.

Vor PHP 5.4.0 enthielt $HTTP_SERVER_VARS anfangs die selben Informationen, war aber kein Superglobal. (Beachten Sie, dass $HTTP_SERVER_VARS und $_SERVER unterschiedliche Variablen waren und von PHP daher entsprechend behandelt wurden.)

Indizes

Es kann sein, dass Sie die folgenden Elemente in $_SERVER vorfinden. Beachten Sie, dass einige davon, sofern vorhanden, nur verfügbar sind oder einen sinnvollen Wert haben, wenn PHP auf der Kommandozeile läuft.

'PHP_SELF'
Der Dateiname des aktuell ausgeführten Skripts, relativ zum Document Root. Beispielsweise enthält $_SERVER['PHP_SELF'] in einem Skript, das über die Adresse http://example.com/foo/bar.php aufgerufen wird, den Wert /foo/bar.php. Die Konstante __FILE__ enthält den vollständigen Pfad und Dateinamen der aktuellen (z.B. via include eingebundenen) Datei. Läuft PHP als Kommandozeilenprogramm, enthält diese Variable seit PHP 4.3.0 den Namen des Skripts. Davor war die Variable nicht verfügbar.
'argv'
Array der an das Skript übergebenen Argumente. Wenn das Skript auf der Kommandozeile ausgeführt wird, erhalten Sie auf diesem Weg einen an die Sprache C angelehnten Zugriff auf die Kommandozeilenparameter. Wird das Skript via GET aufgerufen, enthält die Variable den Querystring.
'argc'
Enthält die Anzahl der per Kommandozeile an das Skript übergebenen Parameter (sofern das Skript auf der Kommandozeile ausgeführt wird).
'GATEWAY_INTERFACE'
Enthält die Version der vom Server verwendete CGI-Spezifikation, z. B. 'CGI/1.1'.
'SERVER_ADDR'
Die IP-Adresse des Servers, auf dem das aktuelle Skript ausgeführt wird.
'SERVER_NAME'
Der Hostname des Servers, auf dem das aktuelle Skript ausgeführt wird. Wenn das Skript auf einem Virtuellen Host läuft, wird dieser Wert vom Virtuellen Host bestimmt.
'SERVER_SOFTWARE'
Identifikation der verwendeten Server-Software, die bei einer Antwort auf den eingegangenen Request verwendet wird.
'SERVER_PROTOCOL'
Name und Versionsnummer des verwendeten Übertragungsprotokolls, mittels dessen die aktuelle Seite aufgerufen wurde, z. B. 'HTTP/1.0'.
'REQUEST_METHOD'
Enthält die für den Zugriff auf die Seite verwendete Requestmethode, z. B. 'GET', 'HEAD', 'POST' oder 'PUT'.

Hinweis:

Ist die Requestmethode HEAD, wird ein PHP-Skript beendet, nachdem die Header gesendet wurden (sofern Ausgaben ohne die Verwendung des Ausgabepuffers (output buffering) erzeugt werden).

'REQUEST_TIME'
Der Timestamp des Zeitpunkts, an dem der Request eintraf. Verfügbar seit PHP 5.1.0.
'REQUEST_TIME_FLOAT'
Der Timestamp des Zeitpunkts, an dem der Request eintraf, in Mikrosekunden-Genauigkeit. Verfügbar seit PHP 5.4.0.
'QUERY_STRING'
Sofern vorhanden, der Querystring, mittels dessen auf die Seite zugegriffen wurde.
'DOCUMENT_ROOT'
Das Document Root-Verzeichnis, unter dem das aktuelle Skript ausgeführt wird, so wie es in der Konfiguration des Servers festgelegt wurde.
'HTTP_ACCEPT'
Enthält den Inhalt des Accept:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde.
'HTTP_ACCEPT_CHARSET'
Enthält den Inhalt des Accept-Charset:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde. Beispiel: 'iso-8859-1,*,utf-8'.
'HTTP_ACCEPT_ENCODING'
Enthält den Inhalt des Accept-Encoding:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde. Beispiel: 'gzip'.
'HTTP_ACCEPT_LANGUAGE'
Enthält den Inhalt des Accept-Language:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde. Beispiel: 'en'.
'HTTP_CONNECTION'
Enthält den Inhalt des Connection:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde. Beispiel: 'Keep-Alive'.
'HTTP_HOST'
Enthält den Inhalt des Host:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde.
'HTTP_REFERER'
Sofern vorhanden, die Adresse der Seite, auf der der Benutzer einen Link auf die aktuell aufgerufene Seite angeklickt hat. Dieser Wert wird vom Browser des Benutzers gesetzt. Nicht alle Programme unterstützen diesen Wert, manche offerieren als Feature sogar die Möglichkeit, den Wert von HTTP_REFERER selbst zu bestimmen. Kurz, Sie können diesem Wert nicht wirklich vertrauen.
'HTTP_USER_AGENT'
Enthält den Inhalt des User-Agent:-Headers des aktuellen Requests, sofern ein solcher gesendet wurde. Dies ist eine Zeichenkette, die das für den Zugriff auf die Seite verwendete Programm anzeigt. Ein typisches Beispiel ist Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Sie können diesen Wert unter anderem mittels der Funktion get_browser dafür nutzen, den Inhalt Ihrer Seite auf die Möglichkeiten des jeweiligen Browsers zuzuschneiden.
'HTTPS'
Wird auf einen nicht-leeren Wert gesetzt, wenn das Skript via HTTPS aufgerufen wurde.

Hinweis: Beachten Sie bei der Verwendung von ISAPI unter IIS, dass der Wert auf off gesetzt wird, wenn der Request nicht mittels HTTPS erfolgte.

'REMOTE_ADDR'
Die IP-Adresse, von der aus der Benutzer die aktuelle Seite ansieht.
'REMOTE_HOST'
Der Name des Hosts, von dem aus der Benutzer die aktulle Seite ansieht. Der Auflösung der IP-Adresse (Reverse DNS Lookup) basiert auf der REMOTE_ADDR des Benutzers.

Hinweis: Ihr Webserver muss darauf konfiguriert sein, diese Variable zu erzeugen. Im Apache benötigen Sie dazu zum Beispiel die Direktive HostnameLookups On innerhalb der httpd.conf. Lesen Sie dazu auch die Beschreibung der Funktion gethostbyaddr.

'REMOTE_PORT'
Der vom Rechner des Benutzers verwendete Port, um mit dem Webserver zu kommunizieren.
'REMOTE_USER'
Der beglaubigte Benutzer.
'REDIRECT_REMOTE_USER'
Der beglaubigte Benutzer, falls der Request intern weiter geleitet wurde.
'SCRIPT_FILENAME'

Der absolute Pfad des aktuell ausgeführten Skripts.

Hinweis:

Wenn ein Skript als CLI mit einem relativen Pfad wie file.php oder ../file.php ausgeführt wird, enthält $_SERVER['SCRIPT_FILENAME'] den vom Benutzer angegebenen relativen Pfad.

'SERVER_ADMIN'
Der Wert, der für die SERVER_ADMIN-Direktive (für Apache) im Konfigurationsfile des Webservers eingestellt wurde. Wenn das Skript auf einem Virtuellen Host läuft, wird der für diesen Virtuellen Host definierte Wert verwendet.
'SERVER_PORT'
Der Port, der auf dem Server vom Webserver für die Kommunikation genutzt wird. In einer Standardumgebung ist dies '80'; wenn Sie beispielsweise SSL verwenden, wird dieser Wert auf den Port geändert, über den Sie Ihre verschlüsselte HTTP-Kommunikation abwickeln.

Hinweis: Unter Apache 2 müssen Sie UseCanonicalName = On sowie UseCanonicalPhysicalPort = On setzen, um den physikalischen (wirklichen) Port zu erhalten; andernfalls kann dieser Wert gefälscht werden, und gibt dann den physikalischen Port Wert zurück, oder nicht. Es ist nicht sicher, sich auf diesen Wert in sicherheitsabhängigen Umfeldern zu verlassen.

'SERVER_SIGNATURE'
Ein String, der die Version der verwendeten Serversoftware und den Namen des Virtuellen Hosts enthält, der, sofern die Option auf dem Server aktiviert ist, an die servergenerierte Seiten angefügt wird.
'PATH_TRANSLATED'
Auf dem Dateisystem (nicht dem Document Root!) basierender Pfad zum aktuellen Skript, nachdem der Server ein Virtual-to-Real-Mapping durchgeführt hat.

Hinweis: Seit PHP 4.3.2 wird PATH_TRANSLATED nicht länger implizit unter der Apache 2 SAPI gesetzt, im Gegensatz zur Situation unter Apache 1, bei dem diese Variable automatisch auf den Wert von SCRIPT_FILENAME gesetzt wird, sofern Apache nicht selbst einen Wert einfügt. Diese Änderung entspricht dem in der CGI-Spezifikation beschriebenen Verhalten, nach dem PATH_TRANSLATED nur dann gesetzt sein sollte, wenn PAT_INFO definiert ist. Apache 2-Benutzer können die Direktive AcceptPathInfo = On in der httpd.conf verwenden, um einen Wert für PATH_INFO zu definieren.

'SCRIPT_NAME'
Enthält den Pfad zum aktuellen Skript. Dies ist nützlich für Seiten, die auf sich selbst verweisen sollen. Die Konstante __FILE__ enthält den vollständigen Pfad und Dateinamen der aktuellen (z.B. via include eingebundenen) Datei.
'REQUEST_URI'
Der URI, der angegeben wurde, um auf die aktuelle Seite zuzugreifen, beispielsweise '/index.html'.
'PHP_AUTH_DIGEST'
Wenn Digest HTTP Authentication verwendet wird, wird diese Variable mit dem Inhalt des vom Client gesendeten 'Authorization'-Headers gefüllt, welchen Sie für eine adäquate Validierung nutzen sollten.
'PHP_AUTH_USER'
Wenn HTTP authentication verwendet wird, wird diese Variable mit dem vom Benutzer angegebenen Usernamen gefüllt.
'PHP_AUTH_PW'
Wenn HTTP authentication verwendet wird, wird diese Variable mit dem vom Benutzer angegebenen Passwort gefüllt.
'AUTH_TYPE'
Wenn HTTP authentication verwendet wird, wird diese Variable mit dem verwendeten HTTP-Authentifizierungsmechanismus gefüllt.
'PATH_INFO'
Enthält, sofern vorhanden, den Teil des Pfadnamens hinter dem Namen des PHP-Skripts, aber vor dem Query-String. Wenn zum Beispiel das aktuelle Skript mittels dem URL http://www.example.com/php/path_info.php/some/stuff?foo=bar aufgerufen wird, würde $_SERVER['PATH_INFO'] /some/stuff enthalten.
'ORIG_PATH_INFO'
Originalversion von 'PATH_INFO' vor der Verarbeitung durch PHP.

Changelog

Version Beschreibung
5.4.0 $HTTP_SERVER_VARS ist nicht mehr verfügbar, da die Registrierung von langen Arrays entfernt wurde.
5.3.0 Die Direktive register_long_arrays, die $HTTP_SERVER_VARS verfügbar gemacht hat, wurde missbilligt.
4.1.0 Einführung von $_SERVER als Ablösung der bis dahin existierenden $HTTP_SERVER_VARS.

Beispiele

Beispiel #2 $_SERVER-Beispiel

<?php
echo $_SERVER['SERVER_NAME'];
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

www.example.com

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

$_GET

$HTTP_GET_VARS [veraltet, nicht empfohlen]

HTTP GET-Variablen

Beschreibung

Ein assoziatives Array von Variablen, die dem aktuellen Skript mittels der URL-Parameter übergeben werden.

$HTTP_GET_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_GET_VARS und $_GET unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)

Changelog

Version Beschreibung
4.1.0 Einführung von $_GET als Ablösung des bis dahin existierenden $HTTP_GET_VARS.

Beispiele

Beispiel #3 $_GET-Beispiel

<?php
echo 'Hallo ' htmlspecialchars($_GET["name"]) . '!';
?>

Angenommen, der Benutzer gab ein http://example.com/?name=Hannes

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hallo Hannes!

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Hinweis:

Die GET-Variablen werden automatisch mit urldecode behandelt.

$_POST

$HTTP_POST_VARS [veraltet, nicht empfohlen]

HTTP POST-Variablen

Beschreibung

Ein assoziatives Array von Variablen, die dem aktuellen Skript mittels der HTTP POST-Methode übergeben werden, wenn application/x-www-form-urlencoded oder multipart/form-data als HTTP Content-Type für die Anfrage verwendet wurde.

$HTTP_POST_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_POST_VARS und $_POST unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)

Changelog

Version Beschreibung
4.1.0 Einführung von $_POST als Ablösung des bis dahin existierenden $HTTP_POST_VARS.

Beispiele

Beispiel #4 $_POST-Beispiel

<?php
echo 'Hello ' htmlspecialchars($_POST["name"]) . '!';
?>

Angenommen, der User POSTete name=Hannes

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hello Hannes!

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

$_FILES

$HTTP_POST_FILES [veraltet, nicht empfohlen]

HTTP Dateiupload-Variablen

Beschreibung

Ein assoziatives Array von Elementen, die vom aktuellen Skript via HTTP POST-Methode hochgeladen werden.

$HTTP_FILES_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_FILES_VARS und $_FILES unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)

Changelog

Version Beschreibung
4.1.0 Einführung von $_FILES als Ablösung des bis dahin existierenden $HTTP_FILES_VARS.

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Siehe auch

$_REQUEST

HTTP Request-Variablen

Beschreibung

Ein assoziatives Array, das standardmäßig den Inhalt von $_GET, $_POST und $_COOKIE enthält.

Changelog

Version Beschreibung
5.3.0 request_order eingeführt. Die Direktive wirkt sich auf den Inhalt von $_REQUEST aus.
4.3.0 $_FILES-Informationen aus $_REQUEST entfernt.
4.1.0 $_REQUEST eingeführt.

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Hinweis:

Wenn das Skript auf der Kommandozeile ausgeführt wird, enthält die Variable nicht den Inhalt von argv und argc; diese finden sich im Array $_SERVER.

Hinweis:

Die Variablen in $_REQUEST werden dem Skript mittels der GET-, POST- und COOKIE-Inputmechanismen zur Verfügung gestellt. Daher kann der Inhalt durch einen entfernten Benutzer modifiziert worden sein und ist daher als nicht vertrauenswürdig zu betrachten. Das Vorhandensein und die Reihenfolge des Variableninhalts in diesem Array wird entsprechend der PHP-Konfigurationsdirektive variables_order bestimmt.

Siehe auch

$_SESSION

$HTTP_SESSION_VARS [veraltet, nicht empfohlen]

Sessionvariablen

Beschreibung

Ein assoziatives Array, das die Sessionvariablen enthält und dem aktuellen Skript zur Verfügung stellt. Lesen Sie den Abschnitt Sessionfunktionen der Dokumentation, um weitere Informationen zur Verwendung zu erhalten.

$HTTP_SESSION_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_SESSION_VARS und $_SESSION unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)

Changelog

Version Beschreibung
4.1.0 Einführung von $_SESSION als Ablösung der bis dahin existierenden $HTTP_SESSION_VARS.

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Siehe auch

  • session_start

$_ENV

$HTTP_ENV_VARS [veraltet, nicht empfohlen]

Umgebungsvariablen

Beschreibung

Ein assoziatives Array von Variablen, die dem aktuellen Skript mittels der Environment-Methode übergeben werden.

Die Variablen werden aus der Laufzeitumgebung, unter der der PHP-Parser läuft, in PHPs globalen Namespace importiert. Die meisten Werte werden von der Shell, unter der PHP läuft, unterstützt, da es aber die unterschiedlichsten Systeme mit unterschiedlichsten Shells gibt, ist es unmöglich, eine definitive Liste aller verfügbaren Werte zu erstellen. Bitte konsultieren Sie die Dokumentation Ihrer Shell, um eine Liste aller definierten Umgebungsvariablen zu erhalten.

Andere Umgebungsvariablen enthalten die CGI-Variablen, die unabhängig davon eingefügt werden, ob PHP als Servermodul oder CGI-Prozess läuft.

$HTTP_ENV_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_ENV_VARS und $_ENV unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)

Changelog

Version Beschreibung
4.1.0 Einführung von $_ENV als Ablösung des bis dahin existierenden $HTTP_ENV_VARS.

Beispiele

Beispiel #5 $_ENV-Beispiel

<?php
echo 'My username is ' .$_ENV["USER"] . '!';
?>

Angenommen "bjori" führt das Skript aus

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

My username is bjori!

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

Siehe auch

$_COOKIE

$HTTP_COOKIE_VARS [veraltet, nicht empfohlen]

HTTP Cookies

Beschreibung

Ein assoziatives Array von Variablen, die dem aktuellen Skript mittels HTTP-Cookies übergeben werden.

$HTTP_COOKIE_VARS enthält anfangs die selben Informationen, ist aber kein Superglobal. (Beachten Sie, dass $HTTP_COOKIE_VARS und $_COOKIE unterschiedliche Variablen sind und von PHP daher entsprechend behandelt werden.)

Changelog

Version Beschreibung
4.1.0 Einführung von $_COOKIE als Ablösung des bis dahin existierenden $HTTP_COOKIE_VARS.

Beispiele

Beispiel #6 $_COOKIE-Beispiel

<?php
echo 'Hello ' htmlspecialchars($_COOKIE["name"]) . '!';
?>

Angenommen der Cookie "name" wurde bereits früher gesetzt:

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Hello Hannes!

Anmerkungen

Hinweis:

Dies ist eine 'Superglobale' oder automatisch globale Variable. Dies bedeutet, dass sie innerhalb des Skripts in jedem Geltungsbereich sichtbar ist. Es ist nicht nötig, sie mit global $variable bekannt zu machen, um aus Funktionen oder Methoden darauf zuzugreifen.

$php_errormsg

Die vorangegangene Fehlermeldung

Beschreibung

$php_errormsg ist eine Variable, die den Text der letzten von PHP generierten Fehlermeldung enthält. Die Variable ist nur innerhalb des Gültigkeitsbereichs (Scopes) verfügbar, in dem der Fehler auftrat, und auch nur, wenn die Konfigurationsoption track_errors eingeschaltet wurde (standardmäßig aus).

Warnung

Wird ein benutzerdefinierter Errorhandler (set_error_handler) verwendet, wird $php_errormsg nur dann gesetzt, wenn der Errorhandler FALSE zurückgibt.

Beispiele

Beispiel #7 $php_errormsg-Beispiel

<?php
@strpos();
echo 
$php_errormsg;
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Wrong parameter count for strpos()

$HTTP_RAW_POST_DATA

Raw POST-Daten

Beschreibung

Warnung

Diese Funktion ist seit PHP 5.6.0 DEPRECATED (veraltet). Sich auf diese Funktion zu verlassen ist in keiner Weise empfehlenswert.

$HTTP_RAW_POST_DATA enthält die originalen (raw) POST-Daten. Lesen Sie auch always_populate_raw_post_data.

Im Allgemeinen sollte php://input anstelle von $HTTP_RAW_POST_DATA verwendet werden.

$http_response_header

HTTP Response-Header

Beschreibung

Das $http_response_header-Array ist vergleichbar mit der Funktion get_headers. Bei der Verwendung eines HTTP-Wrappers enthält $http_response_header die HTTP Response-Header. $http_response_header wird im lokalen Variablengeltungsbereich erstellt.

Beispiele

Beispiel #8 $http_response_header-Beispiel

<?php
function get_contents() {
  
file_get_contents("http://example.com");
  
var_dump($http_response_header);
}
get_contents();
var_dump($http_response_header);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(9) {
  [0]=>
  string(15) "HTTP/1.1 200 OK"
  [1]=>
  string(35) "Date: Sat, 12 Apr 2008 17:30:38 GMT"
  [2]=>
  string(29) "Server: Apache/2.2.3 (CentOS)"
  [3]=>
  string(44) "Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT"
  [4]=>
  string(27) "ETag: "280100-1b6-80bfd280""
  [5]=>
  string(20) "Accept-Ranges: bytes"
  [6]=>
  string(19) "Content-Length: 438"
  [7]=>
  string(17) "Connection: close"
  [8]=>
  string(38) "Content-Type: text/html; charset=UTF-8"
}
NULL

$argc

Die Anzahl der an das Skript übergebenen Argumente

Beschreibung

Enthält die Anzahl der an das aktuelle Skript übergebenen Argumente, wenn das Skript auf der Kommandozeile läuft.

Hinweis: Der Dateiname des Skripts ist immer das erste an das Skript übergebene Argument, damit ist der kleinstmögliche Wert von $argc 1.

Hinweis: Diese Variable ist nicht verfügbar, wenn register_argc_argv ausgeschaltet ist.

Beispiele

Beispiel #9 $argc-Beispiel

<?php
var_dump
($argc);
?>

Wenn das Beispiel so aufgerufen wird: php script.php arg1 arg2 arg3

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

int(4)

$argv

Array der an das Skript übergebenen Argumente

Beschreibung

Enthält ein Array aller an das Skript übergebenen Argumente, wenn dies auf der Kommandozeile ausgeführt wird.

Hinweis: Das erste Argument $argv[0] ist immer der Name der zum Aufrufen des Skripts genutzt wurde.

Hinweis: Diese Variable ist nicht verfügbar, wenn register_argc_argv ausgeschaltet ist.

Beispiele

Beispiel #10 $argv-Beispiel

<?php
var_dump
($argv);
?>

Wenn das Beispiel so aufgerufen wird: php script.php arg1 arg2 arg3

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

array(4) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(4) "arg1"
  [2]=>
  string(4) "arg2"
  [3]=>
  string(4) "arg3"
}

Siehe auch

  • getopt

Inhaltsverzeichnis
  • Superglobals — Superglobals sind Built-in-Variablen, die immer in allen Gültigkeitsbereichen verfügbar sind
  • $GLOBALS — Referenziert alle Variablen, die im globalen Gültigkeitsbereich vorhanden sind
  • $_SERVER — Informationen über Server und Ausführungsumgebung
  • $_GET — HTTP GET-Variablen
  • $_POST — HTTP POST-Variablen
  • $_FILES — HTTP Dateiupload-Variablen
  • $_REQUEST — HTTP Request-Variablen
  • $_SESSION — Sessionvariablen
  • $_ENV — Umgebungsvariablen
  • $_COOKIE — HTTP Cookies
  • $php_errormsg — Die vorangegangene Fehlermeldung
  • $HTTP_RAW_POST_DATA — Raw POST-Daten
  • $http_response_header — HTTP Response-Header
  • $argc — Die Anzahl der an das Skript übergebenen Argumente
  • $argv — Array der an das Skript übergebenen Argumente