Globale PHP-Variablen – Superglobale Variablen
Viele der vordefinierten Variablen in PHP sind „superglobal“, was bedeutet, dass sie im gesamten Umfang eines Skripts verfügbar sind. Auf sie kann innerhalb einer Funktion oder Methode zugegriffen werden, ohne dass die globale $variable; ausgeführt werden muss.
Diese superglobalen Variablen sind:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$ _GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
In diesem Abschnitt werden einige superglobale Variablen und andere vorgestellt Superglobale Variablen werden in späteren Kapiteln erläutert.
$GLOBALS – bezieht sich auf alle im globalen Bereich verfügbaren Variablen
$GLOBALS Diese globale Variable wird verwendet, um von überall in einem PHP-Skript auf globale Variablen zuzugreifen (entweder von einer Funktion oder einer Methode).
PHP speichert alle globalen Variablen in einem Array namens $GLOBALS[index]. Der Name der Variablen ist der Schlüssel des Arrays.
Das folgende Beispiel zeigt, wie die superglobale Variable $GLOBALS verwendet wird:
Instance
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
Running Instance
Im obigen Beispiel seit z ist eine Variable im $GLOBALS-Array, sodass außerhalb der Funktion auf sie zugegriffen werden kann.
PHP $_SERVER
$_SERVER Diese superglobale Variable enthält Informationen über Header, Pfade und Skriptspeicherorte.
Das folgende Beispiel zeigt, wie bestimmte Elemente in $_SERVER verwendet werden:
Instanz
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?>
Laufende Instanz
Die folgende Tabelle listet die wichtigsten auf Elemente, auf die Sie in $_SERVER zugreifen können:
Element/Code Beschreibung
$_SERVER['PHP_SELF'] Gibt den Dateinamen des aktuell ausgeführten Skripts zurück.
$_SERVER['GATEWAY_INTERFACE'] gibt die vom Server verwendete Version der CGI-Spezifikation zurück.
$_SERVER['SERVER_ADDR'] gibt die IP-Adresse des Servers zurück, auf dem das Skript gerade ausgeführt wird.
$_SERVER['SERVER_NAME'] gibt den Hostnamen des Servers zurück, auf dem das Skript gerade ausgeführt wird (z. B. www.w3school.com.cn).
$_SERVER['SERVER_SOFTWARE'] gibt die Server-Identifikationszeichenfolge zurück (z. B. Apache/2.2.24).
$_SERVER['SERVER_PROTOCOL'] Gibt den Namen und die Version des Kommunikationsprotokolls zurück, als die Seite angefordert wurde (z. B. „HTTP/1.0“).
$_SERVER['REQUEST_METHOD'] gibt die Anforderungsmethode zurück, die für den Zugriff auf die Seite verwendet wird (z. B. POST).
$_SERVER['REQUEST_TIME'] gibt den Zeitstempel zurück, als die Anfrage gestartet wurde (z. B. 1577687494).
$_SERVER['QUERY_STRING'] Gibt die Abfragezeichenfolge zurück, wenn auf diese Seite über die Abfragezeichenfolge zugegriffen wird.
$_SERVER['HTTP_ACCEPT'] Gibt die Anforderungsheader der aktuellen Anforderung zurück.
$_SERVER['HTTP_ACCEPT_CHARSET'] gibt den Accept_Charset-Header der aktuellen Anfrage zurück (z. B. utf-8, ISO-8859-1)
$_SERVER['HTTP_HOST'] gibt den Accept_Charset zurück Header aus dem Host-Header der aktuellen Anfrage.
$_SERVER['HTTP_REFERER'] Gibt die vollständige URL der aktuellen Seite zurück (nicht zuverlässig, da nicht von allen Benutzeragenten unterstützt).
$_SERVER['HTTPS'] Ob das Skript über das sichere HTTP-Protokoll abgefragt werden soll.
$_SERVER['REMOTE_ADDR'] Gibt die IP-Adresse des Benutzers zurück, der die aktuelle Seite durchsucht.
$_SERVER['REMOTE_HOST'] Gibt den Hostnamen des Benutzers zurück, der die aktuelle Seite durchsucht.
$_SERVER['REMOTE_PORT'] Gibt die Portnummer zurück, die auf dem Computer des Benutzers für die Verbindung zum Webserver verwendet wird.
$_SERVER['SCRIPT_FILENAME'] gibt den absoluten Pfad des aktuell ausgeführten Skripts zurück.
$_SERVER['SERVER_ADMIN'] Dieser Wert gibt den Parameter SERVER_ADMIN in der Apache-Serverkonfigurationsdatei an.
$_SERVER['SERVER_PORT'] Der vom Webserver verwendete Port. Der Standardwert ist „80“.
$_SERVER['SERVER_SIGNATURE'] gibt die Serverversion und den Namen des virtuellen Hosts zurück.
$_SERVER['PATH_TRANSLATED'] Der Basispfad des Dateisystems (nicht das Stammverzeichnis des Dokuments), in dem sich das aktuelle Skript befindet.
$_SERVER['SCRIPT_NAME'] gibt den Pfad des aktuellen Skripts zurück.
$_SERVER['SCRIPT_URI'] gibt den URI der aktuellen Seite zurück.
PHP $_REQUEST
PHP $_REQUEST wird zum Sammeln von Daten verwendet, die von HTML-Formularen übermittelt werden.
Das folgende Beispiel zeigt ein Formular mit Eingabefeldern und einem Absenden-Button. Wenn ein Benutzer Formulardaten durch Klicken auf die Schaltfläche „Senden“ übermittelt, werden die Formulardaten an die Skriptdatei gesendet, die im Aktionsattribut des