Maison > Article > développement back-end > Comment utiliser les variables globales php
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 :
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['name'] = "what"; } changeName(); echo "my name is " . $name . "<br/>"; ?>
global et $GLOBALUn exemple :
<?php $var1 = 1; $var2 = 2; function test1(){ $GLOBALS['var2'] = &$GLOBALS['var1']; } 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['var1']); } 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 rubriqueFormation 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!