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; ?>Voyons voir ‹/›
以上示例中 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']; ?>Voyons voir ‹/›
Le tableau suivant liste tous les éléments importants des variables $_SERVER:
Élément/Code | Description |
---|---|
$_SERVER['PHP_SELF'] | Le nom du fichier du script en cours d'exécution, lié au document root. Par exemple, à l'adresse http://example.com/test.php/En utilisant $_SERVER['PHP_SELF'] dans le script foo.bar, on obtient /test.php/foo.bar. La constante __FILE__ contient le chemin complet et le nom du fichier du fichier actuel (par exemple inclus) à partir de PHP 4.3.0 version, si PHP s'exécute en mode ligne de commande, cette variable contiendra le nom du script. Pour les versions plus anciennes, cette variable n'est pas disponible. |
$_SERVER['GATEWAY_INTERFACE'] | La version du规范 utilisée par le serveur CGI; par exemple, "CGI/1.1"。 |
$_SERVER['SERVER_ADDR'] | L'adresse IP du serveur où le script en cours d'exécution est exécuté. |
$_SERVER['SERVER_NAME'] | Le nom d'hôte du serveur où le script en cours d'exécution est exécuté. Si le script s'exécute sur un hôte virtuel, ce nom est déterminé par la valeur définie par cet hôte virtuel. (Par exemple: www.w3(codebox.com) |
$_SERVER['SERVER_SOFTWARE'] | La chaîne d'identification du serveur, fournie dans les en-têtes de la réponse à la requête. (Par exemple: Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] | Le nom et la version du protocole de communication utilisé lors de la requête de la page. Par exemple, "HTTP/1.0". |
$_SERVER['REQUEST_METHOD'] | La méthode de requête utilisée pour accéder à la page; par exemple, "GET", "HEAD", "POST", "PUT". |
$_SERVER['REQUEST_TIME'] | L'horodatage du début de la requête. À partir de PHP 5.1.0 est disponible. (Par exemple:1377687496) |
$_SERVER['QUERY_STRING'] | La chaîne de recherche (query string), si elle existe, utilisée pour accéder à la page. |
$_SERVER['HTTP_ACCEPT'] | Le contenu de l'élément Accept: s'il existe. Par exemple: |
$_SERVER['HTTP_ACCEPT_CHARSET'] | L'élément Accept dans l'en-tête de la requête actuelle-Le contenu de l'élément Charset: s'il existe. Par exemple: "iso-8859-1,*,utf-8"。 |
$_SERVER['HTTP_HOST'] | Le contenu de l'élément Host: dans l'en-tête de la requête actuelle, s'il existe. |
$_SERVER['HTTP_REFERER'] | Adresse de la page précédente vers laquelle l'utilisateur agent est redirigé (si elle existe). Déterminée par le paramètre user agent. Pas tous les utilisateurs agents définissent cet item, certains fournissent même la fonction de modification de HTTP_REFERER. En résumé, cette valeur n'est pas fiable.) |
$_SERVER['HTTPS'] | Si le script est accédé via le protocole HTTPS, cette valeur est définie sur une valeur non vide. |
$_SERVER['REMOTE_ADDR'] | L'adresse IP de l'utilisateur qui navigue sur la page actuelle. |
$_SERVER['REMOTE_HOST'] | Le nom d'hôte de l'utilisateur qui navigue sur la page actuelle. La résolution inverse DNS ne dépend pas de l'adresse REMOTE_ADDR de l'utilisateur. |
$_SERVER['REMOTE_PORT'] | Le port utilisé par le serveur Web pour se connecter à l'ordinateur de l'utilisateur. |
$_SERVER['SCRIPT_FILENAME'] | Le chemin d'accès absolu du script en cours d'exécution. |
$_SERVER['SERVER_ADMIN'] | Cette valeur indique le paramètre SERVER_ADMIN du fichier de configuration du serveur Apache. Si le script s'exécute sur un hôte virtuel, cette valeur est celle de cet hôte virtuel (par exemple : someone@w3(codebox.com) |
$_SERVER['SERVER_PORT'] | Le port utilisé par le serveur Web. La valeur par défaut est "8"0". Si une connexion sécurisée SSL est utilisée, cette valeur est le port HTTP configuré par l'utilisateur. |
$_SERVER['SERVER_SIGNATURE'] | Une chaîne contenant la version du serveur et le nom de l'hôte virtuel. |
$_SERVER['PATH_TRANSLATED'] | Le chemin de base du système de fichiers où se trouve le script actuel (non le répertoire racine du document). C'est le résultat après l'image virtuelle vers le chemin réel du serveur. |
$_SERVER['SCRIPT_NAME'] | Contient le chemin d'accès au script actuel. Cela est très utile lorsque la page doit pointer vers elle-même. La constante __FILE__ contient le chemin d'accès complet et le nom du fichier du script actuel (par exemple, les fichiers inclus). |
$_SERVER['SCRIPT_URI'] | L'URI est utilisé pour spécifier la page à accéder. Par exemple "/"index.html". |
PHP $_REQUEST est utilisé pour collecter les données de soumission de formulaires HTML.
Le suivant exemple montre un champ d'entrée (input) et un bouton de soumission (submit) du formulaire (form). Lorsque l'utilisateur soumet les données du formulaire en cliquant sur le bouton "Soumettre", les données du formulaire sont envoyées au fichier de script spécifié dans l'attribut action de la balise <form>. Dans cet exemple, nous spécifions le fichier pour traiter les données du formulaire. Si vous souhaitez que d'autres fichiers PHP traitent les données, vous pouvez modifier le nom du script spécifié. Ensuite, nous pouvons utiliser la variable globale super $_REQUEST pour collecter les données des champs input du formulaire :
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];;"> Nom : <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>Voyons voir ‹/›
PHP $_POST est largement utilisé pour collecter les données des formulaires, en spécifiant l'attribut suivant dans le balise HTML form : "method="post".
Le suivant exemple montre un champ d'entrée (input) et un bouton de soumission (submit) du formulaire (form). Lorsque l'utilisateur soumet les données du formulaire en cliquant sur le bouton "Soumettre", les données du formulaire sont envoyées au fichier de script spécifié dans l'attribut action de la balise <form>. Dans cet exemple, nous spécifions le fichier pour traiter les données du formulaire. Si vous souhaitez que d'autres fichiers PHP traitent les données, vous pouvez modifier le nom du script spécifié. Puis, nous pouvons utiliser la variable universelle $_POST pour collecter les données des champs input du formulaire:
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];;"> Nom : <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>Voyons voir ‹/›
PHP $_GET est largement utilisé pour collecter les données des formulaires, en spécifiant l'attribut suivant dans le balise HTML form : "method="get".
$_GET peut également collecter les données envoyées dans l'URL.
Supposons que nous ayons une page HTML de lien contenant des paramètres :
<html> <body> <a href="test_get.php?subject=PHP&web=oldtoolbag.com">Test $GET</a> </body> </html>
Lorsque l'utilisateur clique sur le lien "Test $GET", les paramètres "subject" et "web" sera envoyé à "test_get.php", vous pouvez utiliser la variable $_GET dans le fichier "test_get.php" pour obtenir ces données.
Le suivant exemple montre le code du fichier "test_get.php":
<html> <body> <?php echo "Étudier" . $_GET['subject'] . " @ " . $_GET['web']; ?> </body> </html>Voyons voir ‹/›
Avis : Si vous souhaitez en apprendre davantage sur $_POST et $_GET, veuillez visiter notre Formulaire PHP Chapitre.