Maison > développement back-end > tutoriel php > Parlez des variables globales en PHP

Parlez des variables globales en PHP

little bottle
Libérer: 2023-04-06 08:56:02
avant
3034 Les gens l'ont consulté

Comme nous le savons tous, dans les fonctions PHP, si vous souhaitez utiliser des variables globales, l'une consiste à utiliser la variable superglobale$GLOBALS, et l'autre consiste à utiliser la déclaration de mot-clé global dans la fonction, en utilisant Tout le monde connaît la méthode de la super variable globale $GLOBALS. Aujourd'hui, parlons de l'utilisation de la méthode globale pour déclarer des variables.

Regardons l'exemple suivant :

$a = 1;
$b = 2;
function test() {
    global $a, $b;
}
test();
Copier après la connexion

Quand on exécute la fonction test(), quel est l'état des variables en mémoire ? Comme le montre la figure ci-dessous

nous déclarons la fonction de test Lorsque la fonction test() est appelée, global déclarera deux variables locales $a, $b dans la fonction. , et Pointez respectivement sur les variables globales $a et $b. À l'heure actuelle, les variables temporaires $a et $b sont équivalentes aux références aux variables globales $a et $b. Ainsi, lorsque l'on modifie les valeurs des variables locales $a et $b dans la fonction, cela équivaut à modifier la valeur de la variable globale.

$a = 1;
$b = 2;
function test() {
    global $a, $b;
    $a = 11;
    $b = 12;
    unset($a);
    unset($b);
}
test();
echo $a;
echo &#39;<br>&#39;;
echo $b;
Copier après la connexion

Imprimer la sortie sur le navigateur :

11
22
Copier après la connexion
Copier après la connexion

Le code ci-dessus utilise également unset(), et les valeurs des variables globales $a, $b peuvent être affichées via echo sortie. Cela montre également que $a et $b déclarés via le mot-clé global dans la fonction test() ne sont que des variables locales, et unset() déconnecte uniquement les références des variables locales et des variables globales.

Regardons une autre situation. Et si les variables que nous déclarons dans la fonction de test ne sont pas dans les variables globales ?

Parlons d'abord de la conclusion : Si une variable déclarée à l'aide du mot-clé global dans une fonction n'a pas de variable du même nom dans la portée globale, alors une variable globale du même nom le fera être créé en premier, puis une variable locale sera créée dans la fonction. Pointez la référence de la variable globale vers la variable locale.

function test() {
    global $a, $b;
    $a = 11;
    $b = 22;
    unset($a);
    unset($b);
}
echo $a;
echo &#39;<br>&#39;;
echo $b;
Copier après la connexion

Sortie via le navigateur :

11
22
Copier après la connexion
Copier après la connexion

Dans le code ci-dessus, nous utilisons global pour déclarer les variables $a, $b dans la fonction de test, bien que le la portée globale $a et $b ne sont pas déclarés, mais global créera toujours les variables globales $a et $b en premier, puis créera $a, $b dans la fonction de test, puis pointera la référence de la variable globale vers la variable locale de la fonction de test. Ainsi, même si nous supprimons $a et $b dans la fonction, nous pouvons toujours afficher $a et $b une fois la fonction exécutée, car il y a déjà deux variables dans la variable globale.

On peut donc enfin tirer la conclusion suivante :

Lors de l'utilisation de global pour déclarer une variable dans une fonction, il vérifiera d'abord s'il existe une variable du même nom dans le portée globale, et si c'est le cas, elle le fera. La référence de cette variable globale pointe vers une variable locale du même nom déclarée à l'aide de global. S'il n'y a aucune variable portant le même nom dans la portée globale, créez d'abord une variable globale portant le même nom, puis créez une variable locale, puis pointez la référence de la variable globale vers la variable locale.

Tutoriels associés : Tutoriel vidéo PHP

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:
php
source:cnblogs.com
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal