Comprendre la portée des variables PHP

怪我咯
Libérer: 2023-03-10 20:20:02
original
1246 Les gens l'ont consulté

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 &#39;b.inc&#39;;
?>
Copier après la connexion

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();
?>
Copier après la connexion

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
?>
Copier après la connexion

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[&#39;b&#39;] = $GLOBALS[&#39;a&#39;] + $GLOBALS[&#39;b&#39;];
}
Sum();
echo $b;//3
?>
Copier après la connexion

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 — 传递给脚本的参数数组
Copier après la connexion

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
Copier après la connexion
<?php
function test_global()
{
    //预定义变量
    global $HTTP_POST_VARS;
    echo $HTTP_POST_VARS[&#39;name&#39;];
    //超全局变量
    echo $_POST[&#39;name&#39;];
}
?>
Copier après la connexion


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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal