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 = 'Hello World'; test_global(); function test_global() { // Now in local scope // the $my_var variable doesn't exist // Produces error: "Undefined variable: my_var" echo $my_var; // Now let's important the variable global $my_var; // Works: echo $my_var; } ?>
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; ?>
S'il n'y a pas de variable globale globale, les valeursde $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; ?>
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['w3sky'] = $GLOBALS['w3sky'] + $GLOBALS['w3sky2']; }Sum(); echo $w3sky2; ?>
. 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",它们需要用 'global' 关键字来使它们在函 数的本地区域中有效。 global $HTTP_POST_VARS;echo $HTTP_POST_VARS['name'];// Superglobals 在任何 范围内都有效,它们并不需要 'global' 声明。Superglobals 是在 PHP 4.1.0 引入的。 echo $_POST['name']; } ?>
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('A')+$count)); $count=$count+1; } print("<br>Now I know $count letters<br>"); } $count=0; SayMyABCs2(); $count=$count+1; print("Now I've made $count function call(s).<br>"); SayMyABCs2(); $count=$count+1; print("Now I've made $count function call(s).<br>"); ?>
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've made 11 function call(s). //第二次由于条件大于10则不执行循环 Now I know 11 letters Now I've made 12 function call(s).
$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!