Portée variable est le contexte dans lequel elle est définie (c'est-à-dire sa portée effective). En JavaScript, il n'existe pas de concept de portée variable. Un concept similaire peut être celui de portée. Cependant, comme JavaScript utilise une portée lexicale, qui fait référence à la position à laquelle la variable est déclarée ; et que PHP n'a pas de déclaration de variable, la variable équivaut à déclarer la variable lorsqu'une valeur lui est attribuée pour la première fois. Les deux ne sont donc pas identiques. Cet article présentera en détail la portée des variables en PHP
Scope span
La plupart des variables PHP n'ont qu'une seule portée. Cette portée distincte inclut également les fichiers introduits par include et require
Ici, la variable $a prendra effet dans le fichier inclus b.inc
<?php $a = 1; include 'b.inc'; ?>
Portée de la fonction
Dans l'utilisateurfonction personnalisée, une portée de fonction locale sera introduite. Toutes les variables utilisées à l'intérieur de la fonction seront limitées par défaut à la portée de la fonction locale
Le script suivant ne produira aucune sortie car l'instruction echo fait référence à une version locale de la variable $a, et dans ce Dans le scope, la valeur
<?php $a = 1; /* global scope */ function Test() { echo $a; /* reference to local scope variable */ } Test(); ?>
mot-clé global
ne lui a pas été attribuée. La sortie du script suivant sera "3". Une fois les variables globales a et
b déclarées dans une fonction, toutes les références à l'une ou l'autre variable pointeront vers sa version globale. PHP n'a pas de limite sur le nombre maximum de variables globales pouvant être déclarées par une fonction
<?php $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b;//3 ?>
La deuxième façon d'accéder aux variables dans la portée globale consiste à utiliser un tableau $GLOBALS personnalisé PHP spécial
GLOBALS est un tableau associatif, chaque variable est un élément, le nom de la clé correspond au nom de la variable, et la valeur correspond au contenu de la variable. La raison pour laquelle GLOBALS existe dans la portée globale est parce que GLOBALS est une variable superglobale
<?php $a = 1; $b = 2; function Sum() { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } Sum(); echo $b;//3 ?>
variable prédéfinie
Pour tous scripts, PHP fournit un grand nombre de variables prédéfinies. Ces variables représentent toutes les variables externes en tant que variables d'environnement intégrées et les messages d'erreur en tant qu'en-têtes de retour
Ce qui suit est une liste de variables prédéfinies
超全局变量 — 超全局变量是在全部作用域中始终可用的内置变量 $GLOBALS — 引用全局作用域中可用的全部变量 $_SERVER — 服务器和执行环境信息 $_GET — HTTP GET 变量 $_POST — HTTP POST 变量 $_FILES — HTTP 文件上传变量 $_REQUEST — HTTP Request 变量 $_SESSION — Session 变量 $_ENV — 环境变量 $_COOKIE — HTTP Cookies $php_errormsg — 前一个错误信息 $HTTP_RAW_POST_DATA — 原生POST数据 $http_response_header — HTTP 响应头 $argc — 传递给脚本的参数数目 $argv — 传递给脚本的参数数组
La plupart d'entre elles Variables prédéfinies ne sont pas des variables superglobales, elles doivent utiliser le mot-clé 'global' pour les rendre disponibles dans la portée locale de la fonction
Variables superglobales
Les variables superglobales sont disponibles dans n'importe quelle portée valide, elles le font ne nécessite pas de déclaration « globale »
Vous trouverez ci-dessous une liste de variables superglobales
$GLOBALS $_SERVER $_GET$_POST $_FILES$_COOKIE $_SESSION $_REQUEST $_ENV
<?php function test_global() { //预定义变量 global $HTTP_POST_VARS; echo $HTTP_POST_VARS['name']; //超全局变量 echo $_POST['name']; } ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!