Maison  >  Article  >  développement back-end  >  Comment utiliser les variables globales php

Comment utiliser les variables globales php

coldplay.xixi
coldplay.xixioriginal
2020-10-10 17:15:281914parcourir

Comment utiliser les variables globales PHP : Vous pouvez déclarer la variable via global dans la fonction, le code est [$name = "why";function changeName(){global $name;$name = "what" ; }].

Comment utiliser les variables globales php

Comment utiliser les variables globales php :

1. 🎜>

Initialement, mon exigence était la suivante :

<?php
$name = "why";
function changeName(){
    $name = "what";
}
changeName();
echo "my name is " . $name . "<br/>";
?>

Le résultat de l'exécution du code est : mon nom est pourquoi, au lieu de ce qui est affiché après l'exécution de changeName(). En analysant la raison, cela est dû au fait que la variable $name dans le corps de la fonction changeName est définie par défaut sur une variable locale et que la portée de $name est dans changeName. Modifiez donc le code et ajoutez des variables globales comme suit :

<?php
global $name;
$name = "why";
function changeName(){
    $name = "what";
}
changeName();
echo "my name is " . $name . "<br/>";
?>

Remarque : Vous ne pouvez pas attribuer une valeur à une variable tout en la déclarant globale. L'utilisation de global $name = "pourquoi" est erronée.

Le résultat de l'exécution après avoir défini la variable globale est toujours mon nom, c'est pourquoi ce résultat m'a surpris. Il s'avère que l'utilisation correcte de global est : "Introduire une variable externe dans une fonction. Si la variable n'est pas transmise via un paramètre, alors elle est introduite via global. En d'autres termes, lorsqu'une fonction fait référence à un externe." variable, il peut déclarer la variable via global dans la fonction afin que la variable puisse être utilisée dans la fonction (équivalent à la transmettre en tant que paramètre). Ensuite, modifiez à nouveau le code :

<?php
$name = "why";
function changeName(){
    global $name;
    $name = "what";
}
changeName();
echo "my name is " . $name . "<br/>";
?>

Le résultat de cette opération est : mon nom est quoi, indiquant que global est utilisé pour passer des paramètres, plutôt que de rendre la portée de la variable globale. Regardez l'exemple suivant :

<?php
$name = "why";
function changeName(){
    global $name;
    $name = "what";
}
function changeName2(){
    $name = "where";
}
changeName();
changeName2();
echo "my name is " . $name . "<br/>";
?>

Le résultat de l'exécution est : mon nom est quoi. Si global $name est ajouté à changeName2(), le résultat de l'exécution est : mon nom est où.

En résumé, le rôle de global équivaut à passer des paramètres. Si vous souhaitez utiliser une variable déclarée en dehors de la fonction, utilisez global pour déclarer la variable, ce qui équivaut à passer la variable dedans. référencer la variable.

En plus d'utiliser la définition du paramètre global, vous pouvez également utiliser la super variable globale $GLOBAL :

<?php
$name = "why";
function changeName(){
    $GLOBALS[&#39;name&#39;] = "what";
}
changeName();
echo "my name is " . $name . "<br/>";
?>

global et $GLOBALUn exemple :

<?php
$var1 = 1;
$var2 = 2;
function test1(){
    $GLOBALS[&#39;var2&#39;] = &$GLOBALS[&#39;var1&#39;];
}
test1();
echo $var2 . "<br />";
$var3 = 1;
$var4 = 2;
function test2(){
    global $var3,$var4;
    $var4 = &$var3;
}
test2();
echo $var4 . "<br />";
?>

La valeur de sortie de $var2 est 1 et la valeur de $var4 est 2, car la référence de $var3 pointe vers l'adresse de référence de $var4. La valeur réelle de $var4 n'a pas changé. L'explication officielle est la suivante : $GLOBALS['var'] est la variable globale externe elle-même, et global $var est la référence ou le pointeur du même nom de la $var externe. Cela signifie que $GLOBAL est disponible dans toutes les portées d'un script et que vous pouvez y accéder dans des fonctions ou des méthodes sans exécuter global $variable;. Contrairement à toutes les autres variables superglobales, $GLOBALS est toujours disponible en PHP. Autre exemple :

<?php
$var1 = 1;
function test1(){
    unset($GLOBALS[&#39;var1&#39;]);
}
test1();
echo $var1 . "<br />";
$var2 = 1;
function test2(){
    global $var2;
    unset($var2);
}
test2();
echo $var2;
?>

Le résultat de sortie est que $var1 n'existe pas et la valeur de $var2 est 1. Cela prouve que $var2 n'est qu'une référence d'alias et que sa valeur n'a en aucun cas été modifiée. En d'autres termes, global $var est en fait $var = &$GLOBALS['var'], qui n'est qu'un alias pour appeler des variables externes !

Si vous souhaitez en savoir plus sur la programmation, faites attention à la rubrique
Formation 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!

Déclaration:
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