Comment utiliser les variables globales globales de PHP

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

Variables globales et mot-clé "global"

PHP définit certaines variables "Superglobals" par défaut. Ces variables sont automatiquement globalisées et peuvent être appelées n'importe où dans le programme, par exemple $_GET et $. _REQUETE, etc. Elles proviennent généralement de données ou d'autres données externes, et l'utilisation de ces variables ne pose généralement pas de problèmes car elles ne sont fondamentalement pas accessibles en écriture. Mais vous pouvez utiliser vos propres variables globales. En utilisant le mot-clé "global", vous pouvez importer des données globales dans la portée locale d'une fonction . Si vous ne comprenez pas le « portée d'utilisation variable », veuillez vous référer aux instructions pertinentes dans le Manuel PHP vous-même. Voici un exemple de démonstration utilisant le mot-clé "global" :

Comme vous pouvez le voir dans l'exemple ci-dessus, le mot-clé "global" est utilisé pour importer des variables globales . Il semble que cela fonctionne
<?php
$my_var = &#39;Hello World&#39;;
test_global();
function test_global() {
    // Now in local scope
     // the $my_var variable doesn&#39;t exist
     // Produces error: "Undefined variable: my_var"
    echo $my_var;
    // Now let&#39;s important the variable
    global $my_var;
    // Works:
    echo $my_var;
}
?>
Copier après la connexion
très bien et soit simple, alors pourquoi nous soucions-nous d'utiliser le mot-clé "global" pour définir des données globales ?

Laissez-moi expliquer à ceux qui sont nouveaux dans l'industrie l'utilisation de variables globales, "variables globales". Les deux mots global dans ce nom nous ont dit que cette variable est utilisé dans divers Il peut être utilisé partout. Regardons d'abord un exemple :

Résultat : 3
<?php
$a = 1;
$b = 2;
function Sum()
{
    global $a, $b; //在里面声明为全局变量
    $b = $a + $b;
}
Sum();
echo $b;
?>
Copier après la connexion

S'il n'y a pas de variable globale globale, les valeurs​​de $a et $b ne peuvent pas être obtenus dans la méthode, donc dans la méthode Si vous souhaitez utiliser une variable externe à l'intérieur, vous

devez d'abord déclarer cette variable comme variable globale, afin qu'elle puisse être utilisée, ce qui est très pratique.

La sortie du script ci-dessus sera "3". Les variables globales $w3sky et $w3sky2 sont déclarées dans la fonction, et toutes les variables de référence
<?PHP
      $w3sky = 1;
      $w3sky2 = 2;
function Sum()
       {
       global $w3sky, $w3sky2;$w3sky2 = $w3sky + $w3sky2;
       }Sum();
       echo $w3sky2;
       ?>
Copier après la connexion
de n'importe quelle variable pointeront vers les variables globales. PHP n'a pas de limite sur le nombre maximum de variables globales qu'une fonction peut déclarer.

La deuxième façon d'accéder aux variables dans la portée globale consiste à utiliser un tableau $GLOBALS personnalisé PHP spécial. L'exemple précédent peut s'écrire ainsi :

L'exemple utilise $GLOBALS au lieu de globalDans le tableau $GLOBALS, chaque variable est un element, key Le nom correspond au

nom de la variable

, et la valeur correspond au contenu de la variable

. $GLOBALS existe dans la portée globale car $GLOBALS est une
<?PHP
       $w3sky = 1;
       $w3sky2 = 2;function Sum()
       {
       $GLOBALS[&#39;w3sky&#39;] = $GLOBALS[&#39;w3sky&#39;] + $GLOBALS[&#39;w3sky2&#39;];
       }Sum();
       echo $w3sky2;
       ?>
Copier après la connexion
variable superglobale

. L'exemple suivant montre l'utilisation de variables superglobales : Exemple démontrant des variables superglobales et des exemples de portéeglobal C'est-à-dire dans Tant que vous déclarez global $db dans un fichier, vous pouvez référencer cette $db en dessous de la déclaration

sortie :
<?PHP
       function test_global()
       {
       // 大多数的预定义变量并不 "super",它们需要用 &#39;global&#39; 关键字来使它们在函
数的本地区域中有效。
       global $HTTP_POST_VARS;echo $HTTP_POST_VARS[&#39;name&#39;];// Superglobals 在任何
范围内都有效,它们并不需要 &#39;global&#39; 声明。Superglobals 是在 PHP 4.1.0 引入的。
       echo $_POST[&#39;name&#39;];
       }
       ?>
Copier après la connexion

En raison de la déclaration globale des variables, il n'y a maintenant qu'une seule variable $count, qui est incrémentée à la fois à l'intérieur et à l'extérieur de la fonction. Lorsque

appelle SayMyABCs2() pour la deuxième fois, $count est déjà 11, donc il n'y a pas d'entrée dans la boucle d'impression des lettres. . La portée de la variable
<?php
function SayMyABCs2()
{
     global $count;
     while($count<10)
        {
           print(chr(ord(&#39;A&#39;)+$count));
           $count=$count+1; 
        }
     print("<br>Now I know $count letters<br>");
}
$count=0;
SayMyABCs2();
$count=$count+1;
print("Now I&#39;ve made $count function call(s).<br>");
SayMyABCs2();
$count=$count+1;
print("Now I&#39;ve made $count function call(s).<br>");
?>
Copier après la connexion
définie dans la fonction


est limitée à la fonction par défaut. À l'aide de la déclaration globale, vous pouvez notifier à PHP que

ABCDEFGHIJ         //第一次循环依次打印10个大写字母
Now I know 10 letters
Now I&#39;ve made 11 function call(s).       //第二次由于条件大于10则不执行循环

Now I know 11 letters
Now I&#39;ve made 12 function call(s).
Copier après la connexion
doit maintenant être. Un nom de variable a. la même signification que dans l’environnement extérieur à la fonction. Format de déclaration : global,

$count1,$count2,...,$countn;global est utile par contre, notamment parce que PHP fournit certaines variables qui peuvent être utilisées dans The le code est lié à chaque page avant l'exécution. Il permet à la fonction de voir ces variables, éliminant ainsi le besoin de les transmettre à la fonction en tant que paramètres à chaque fois qu'elle est appelée Problème.

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