Maison >développement back-end >tutoriel php >PHP utilise Global pour définir comment utiliser les variables globales
Global est une commande spéciale en php. Nous l'appelons simplement une variable super globale Maintenant, permettez-moi de vous présenter comment j'ai utilisé Global pour définir des notes d'étude globales aujourd'hui
C'est très étrange. Habituez-vous à la portée des variables en PHP. En PHP, les variables de fonction et le monde global sont complètement isolés, c'est-à-dire qu'elles ne peuvent pas accéder les unes aux autres.
Par exemple :
Le code est le suivant :
$test = 123; abc(); //这里什么都不输出,因为访问不到$test变量 function abc(){ echo($test); }$test = 123; abc(); //这里什么都不输出,因为访问不到$test变量 function abc(){ echo($test); }
Si vous souhaitez accéder aux variables externes à l'intérieur de la fonction, vous devez faire ceci :
Le code est le suivant :
$test = 123; abc(); //输出123 function abc(){ global $test; echo($test); }$test = 123; abc(); //输出123 function abc(){ global $test; echo($test); }
Mais que se passe-t-il si on définit des variables globales dans la fonction, comme ceci :
Le code est comme suit :
function abc(){ global $test; $test = 123; } abc(); echo($test); //输出123function abc(){ global $test; $test = 123; } abc(); echo($test);
//Sortie 123 De cette façon, on peut accéder aux variables définies à l'intérieur de la fonction depuis l'extérieur
Dans la fonction personnalisée de l'utilisateur, une portée de fonction locale sera introduite. Toutes les variables utilisées à l'intérieur de la fonction seront limitées par défaut à la portée de la fonction locale (y compris les variables dans les fichiers importés par include et require)
Explication : Un Test_Global dans le . php est une fonction tierce définie. Cette fonction utilise include pour importer la variable globale globale de $a dans le fichier B.php, donc $a est limité à la portée de la fonction locale Test_Global, donc le fichier B.php. La portée de $a dans Test_Global est dans Test_Global, plutôt que dans l'intégralité de A.php...
Solution :
1 Décomposer la fonction locale
//A.php fichier
<?php function Test_Global() { Test(); } include 'B.php'; //将include 从局部Test_Global函数中移出 $a = 0 ; Test_Global(); echo $a; ?> //B.php 文件 <?php function Test() { global $a; $a =1; } ?>
2. Excellent accesseur
//A.php 文件 <?php include 'B.php'; $a =0; Set_Global($a); echo $a; ?> //B.php 文件 <?php function Set_Global(&$var) { $var=1; } ?>
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!