English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
超级全局变量在PHP 4.1.0之后被启用,是PHP系统中自带的变量,在一个脚本的全部作用域中都可用。
PHP中预定义了几个超级全局变量(superglobals),这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
PHP 超级全局变量列表:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
本章节我们将讲解几个常用的超级全局变量,其余变量我们在接下来几个章节会介绍到。
$GLOBALS是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。
$GLOBALS是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
以下示例介绍了如何使用超级全局变量 $GLOBALS:
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x']; + $GLOBALS['y']; } addition(); echo $z; ?>Testen Sie es heraus ‹/›
以上示例中z是一个GLOBALS数组中的超级全局变量,该变量同样可以在函数外访问。
$_SERVER是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由Web服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
以下示例中展示了如何使用$_SERVER中的元素:
<?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']; ?>Testen Sie es heraus ‹/›
Nachstehend sind alle wichtigen Elemente der $_SERVER-Variable aufgelistet:
Element/Code | Beschreibung |
---|---|
$_SERVER['PHP_SELF'] | Dateiname des Skripts, das currently ausgeführt wird, ist mit dem document root verbunden. Zum Beispiel, in der Adresse von http://example.com/test.php/foo.bar wird im Skript verwendet $_SERVER['PHP_SELF'] erhalten /test.php/foo.bar. Die __FILE__-Konstante enthält den vollständigen Pfad und den Dateinamen des aktuellen (z.B. enthaltenen) Dateis. 4.3.0 Version, wenn PHP im Kommandozeilenmodus ausgeführt wird, enthält diese Variable den Namen des Skripts. In früheren Versionen ist diese Variable nicht verfügbar. |
$_SERVER['GATEWAY_INTERFACE'] | Version der CGI-Spezifikation, die vom Server verwendet wird; zum Beispiel, "CGI/1.1"。 |
$_SERVER['SERVER_ADDR'] | Die IP-Adresse des Servers, auf dem das aktuelle Skript ausgeführt wird. |
$_SERVER['SERVER_NAME'] | Der Hostname des Servers, auf dem das aktuelle Skript ausgeführt wird. Wenn das Skript in einem virtuellen Host ausgeführt wird, wird dieser Name durch den Wert, den der virtuelle Host gesetzt hat, bestimmt. Zum Beispiel: de.oldtoolbag.com) |
$_SERVER['SERVER_SOFTWARE'] | Zeichenfolge zur Identifizierung des Servers, die in der Kopfzeile der Antwort auf die Anfrage angegeben wird. Zum Beispiel: Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] | Name und Version des Kommunikationsprotokolls beim Requesten der Seite. Zum Beispiel, "HTTP/1.0". |
$_SERVER['REQUEST_METHOD'] | Die verwendete Anfragemethode zur Seite; zum Beispiel, "GET", "HEAD", "POST", "PUT". |
$_SERVER['REQUEST_TIME'] | Zeitstempel zum Zeitpunkt des Beginns der Anfrage. Ab PHP 5.1.0 verfügbar. (Zum Beispiel:1377687496) |
$_SERVER['QUERY_STRING'] | query string (Query String), falls vorhanden, wird durch sie zur Seite besucht. |
$_SERVER['HTTP_ACCEPT'] | Der Inhalt des Accept: Elements im aktuellen Request-Header, falls vorhanden. |
$_SERVER['HTTP_ACCEPT_CHARSET'] | Der Accept im aktuellen Request-Header-Charset: Inhalt des Elements, falls vorhanden. Zum Beispiel: "iso-8859-1,*,utf-8"。 |
$_SERVER['HTTP_HOST'] | Der Inhalt des Host: Elements im aktuellen Request-Header, falls vorhanden. |
$_SERVER['HTTP_REFERER'] | Leitet den Benutzeragent zur vorherigen Seite der aktuellen Seite (wenn vorhanden) weiter. Dies wird durch die Einstellungen des Benutzeragents bestimmt. Nicht alle Benutzeragenten stellen dieses Element ein, einige bieten auch die Möglichkeit, HTTP_REFERER zu ändern. Kurz gesagt, dieser Wert ist nicht vertrauenswürdig.) |
$_SERVER['HTTPS'] | Wenn das Skript über das HTTPS-Protokoll aufgerufen wird, wird dieser Wert auf einen nicht leeren Wert gesetzt. |
$_SERVER['REMOTE_ADDR'] | Die IP-Adresse des Benutzers, der die aktuelle Seite betrachtet. |
$_SERVER['REMOTE_HOST'] | Der Hostname des Benutzers, der die aktuelle Seite betrachtet. DNS-Rückwärtsauflösung hängt nicht vom REMOTE_ADDR des Benutzers ab. |
$_SERVER['REMOTE_PORT'] | Der Port, den das Benutzergerät verwendet, um sich mit dem Web-Server zu verbinden. |
$_SERVER['SCRIPT_FILENAME'] | Der absolute Pfad zur ausführten Skript. |
$_SERVER['SERVER_ADMIN'] | Dieser Wert gibt an, welchen Wert der SERVER_ADMIN-Parameter in der Apache-Server-Konfigurationsdatei hat. Wenn das Skript auf einem virtuellen Host ausgeführt wird, ist dieser Wert der des virtuellen Hosts (z.B. [email protected]) |
$_SERVER['SERVER_PORT'] | Der Port, den der Web-Server verwendet. Der Standardwert ist "8"0". Wenn eine SSL-versicherte Verbindung verwendet wird, ist dieser Wert der von dem Benutzer festgelegte HTTP-Port. |
$_SERVER['SERVER_SIGNATURE'] | Ein String, der die Serverversion und den Namen des virtuellen Hosts enthält. |
$_SERVER['PATH_TRANSLATED'] | Das Basisverzeichnis des Dateisystems, in dem sich das aktuelle Skript befindet (nicht das Dokumenten-Root-Verzeichnis). Dies ist das Ergebnis des virtuellen zu realen Pfad-Abbilds, das durch den Server durchgeführt wird. |
$_SERVER['SCRIPT_NAME'] | Enthält den Pfad zur aktuellen Skript. Dies ist sehr nützlich, wenn die Seite sich selbst verweisen muss. Die Konstante __FILE__ enthält den vollständigen Pfad und den Dateinamen des aktuellen Skripts (z.B. enthaltenen Dateien). |
$_SERVER['SCRIPT_URI'] | Die URI wird verwendet, um die zu besuchende Seite zu spezifizieren. Zum Beispiel "/"index.html". |
PHP $_REQUEST wird verwendet, um die Daten der HTML-Formular-Übermittlung zu sammeln.
Der folgende Beispiel zeigt ein Formular mit einem Input-Feld (input) und einem Submit-Button (submit): Wenn der Benutzer die Formulardaten durch Klicken auf die Schaltfläche "Submit" einreicht, werden die Formulardaten an den Skriptdatei, der im Attribut action des <form>-Tags angegeben ist, gesendet. In diesem Beispiel haben wir die Datei angegeben, um die Formulardaten zu verarbeiten. Wenn Sie eine andere PHP-Datei verwenden möchten, um die Daten zu verarbeiten, können Sie den angegebenen Skriptdateinamen ändern. Dann können wir die Super-Globale Variable $_REQUEST verwenden, um die Daten der Input-Felder des Formulars zu sammeln:
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];;"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>Testen Sie es heraus ‹/›
PHP $_POST wird ebenfalls weit verbreitet zur Sammlung von Formulardaten verwendet, indem im HTML-Formular-Tag das Attribut "method="post" angegeben wird.
Der folgende Beispiel zeigt ein Formular mit einem Input-Feld (input) und einem Submit-Button (submit): Wenn der Benutzer die Formulardaten durch Klicken auf die Schaltfläche "Submit" einreicht, werden die Formulardaten an den Skriptdatei, der im Attribut action des <form>-Tags angegeben ist, gesendet. In diesem Beispiel haben wir die Datei angegeben, um die Formulardaten zu verarbeiten. Wenn Sie eine andere PHP-Datei verwenden möchten, um die Daten zu verarbeiten, können Sie den angegebenen Skriptdateinamen ändern. Dann können wir die Superglobal-Variable $_POST verwenden, um die Daten der Input-Felder im Formular zu sammeln:
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];;"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>Testen Sie es heraus ‹/›
PHP $_GET wird ebenfalls weit verbreitet zur Sammlung von Formulardaten verwendet, indem im HTML-Formular-Tag das Attribut "method="get" angegeben wird.
$_GET kann auch die Daten sammeln, die in der URL gesendet werden.
Angenommen, wir haben eine Hyperlink-HTML-Seite, die Parameter enthält:
<html> <body> <a href="test_get.php?subject=PHP&web=oldtoolbag.com">Test $GET</a> </body> </html>
Wenn der Benutzer auf den Link "Test $GET" klickt, werden die Parameter "subject" und "web" wird an "test_get.php" gesendet, und Sie können die Daten mit dem $_GET-Variable in der Datei "test_get.php" abrufen.
Der folgende Beispiel zeigt den Code der Datei "test_get.php":
<html> <body> <?php echo "Study" . $_GET['subject'] . " @ " . $_GET['web']; ?> </body> </html>Testen Sie es heraus ‹/›
Hinweis: Wenn Sie mehr über $_POST und $_GET erfahren möchten, besuchen Sie bitte unsere PHP-Formular Kapitel.