Portée variable de la fonction personnalisée php

Nous connaissons plusieurs règles différentes en étudiant la partie définition de la fonction dans le chapitre précédent :

Lorsqu'une fonction est définie, les variables entre parenthèses sont des paramètres formels (paramètres formels) et n'a rien à voir avec les variables extérieures à la fonction. Il suffit d'exécuter dans la fonction

Les variables déclarées dans la fonction n'ont rien à voir avec les variables en dehors de la fonction.

Cependant, nous rencontrerons une telle situation dans le traitement réel :

Je souhaite que les variables définies dans le corps de la fonction soient utilisées en dehors de la fonction

Je souhaite utiliser le function Les variables à l'extérieur du corps sont utilisées à l'intérieur de la fonction

À ce stade, nous devons utiliser des variables super globales. Revoyons les points de connaissances précédents :

全局变量名功能说明
$_COOKIE得到会话控制中cookie传值
$_SESSION得到会话控制中session的值
$_FILES得到文件上传的结果
$_GET得到get传值的结果
$_POST得到post传值的结果
$_REQUEST即能得到get的传值结果,也能得到Post传值的结果

Observons les caractéristiques des variables externes (variables super-globales) à travers des expériences et brisons les règles que nous avons résumées au début de ce chapitre :

Définissons la page global.html pour écrire du contenu HTML :

<html>
   <head>
       <title>超全局数组实验</title>
   </head>
   <body>
       <!--先用POST来实验,以后你可以改成GET哟 -->
       <form action="glob.php" method="post">
           <input type="text" name="hongniu" /><br />

           <input type="submit" value="提交" />
       </form>

   </body>
</html>

Nous avons soumis le contenu html à la page glob.php via le formulaire form Écrivons maintenant glob.php :

<?php 
function demo(){ 
echo $_POST['hongniu']; 
} 
demo(); 
?>

A travers ce petit exemple, vous trouverez le super-. global $ Cette série de variables superglobales (variables externes) telles que _POST peut également être utilisée à l'intérieur de la fonction. Il n'y a aucune restriction sur la portée des variables comme au début de cet article. En fait, toutes nos variables déclarées sont placées sous le tableau $GLOBALS Par exemple :

<?php
$hello = 10;

echo $GLOBALS['hello'].'<br />';

$GLOBALS['hello'] = '我爱你';

echo $hello;

?>

Grâce à l'exemple ci-dessus, vous constaterez que le nom de la variable $ est équivalent à $. GLOBALS['nom de la variable'] . Toutes les variables sont placées dans $GLOBALS. Et $GLOBALS est également global.

Par conséquent, nous pouvons atteindre notre objectif : utiliser les variables (variables locales) dans le corps de la fonction en dehors de la fonction. Vous pouvez également utiliser des variables en dehors de la fonction à l'intérieur de la fonction.

1. Lire les variables externes via $GLOBLAS

<?php

$one = 10;

function demo(){
   $two = 100;

   $result = $two + $GLOBALS['one'];

   return $result;

}
//你会发现结果变成了110
echo demo();

?>

Dans l'exemple ci-dessus : nous récupérons les variables en dehors du corps de la fonction via $GLOBALS et les utilisons dans le corps de la fonction. . Par conséquent, la restriction selon laquelle les variables extérieures à la fonction ne peuvent pas être utilisées dans le corps de la fonction est levée.

2. Modifiez les variables externes dans la fonction via $GLOBLAS

<?php

$hongniu = '我是一个兵,来自老百姓';

function test(){

   echo '执行了函数test哟<br />';
   //调用test()函数,将通过$GLOBALS['hongniu'],把$hongniu的值改变掉

   $GLOBALS['hongniu'] = '帮助别人很快乐';
}

test();
//发现是不是输出的值变了呀?
echo $hongniu;

?>

Grâce à l'exemple ci-dessus : nous avons constaté que via $GLOBALS['hongniu'], le $hongniu's The la valeur change, donc lorsque $hongniu est finalement sorti, la valeur change.

3. Créez une variable globale dans la fonction via $GLOBLAS

<?php

function hello(){

   $GLOBALS['que'] = '提神喝茶更好哟';

   echo '你调了一下函数hello<br />';
}

hello();

echo $que;

?>

Dans l'exemple ci-dessus, nous avons constaté que $que n'existe pas, et nous pouvons appeler le function hello() Enfin, echo $que peut être exécuté en dehors de la fonction, et le résultat est visible : il vaut mieux boire du thé pour se rafraîchir. Nous comprenons que les variables déclarées dans une fonction peuvent également être affichées en déclarant une variable via $GLOBALS.

Les connaissances suivantes sont au niveau [compréhension], et nous utilisons de moins en moins cette méthode pour déclarer des variables globales. L'utilisation du mot-clé global suivi d'une ou plusieurs variables dans une fonction transforme la variable en variable globale. Le format est le suivant :

global $variable1[, variable2,....variablen ]<. 🎜>

Global peut être suivi d'une ou plusieurs variables, et les variables sont séparées par des virgules.

<?php
$a = 10;
$b = 100;
function test(){
   global $a , $b;
   echo $a + $b;
}
//结果是不是显示出来了?
test();
?>

Dans l'exemple ci-dessus, vous pouvez également essayer de suivre le mot-clé global avec une variable non créée, définir la valeur de la variable dans le corps de la fonction et essayer de modifier la valeur de la variable. En fait, c'est la même chose que $GLOBALS, mais l'utilisation est différente.

Remarque :

N'écrivez pas $variable = value après global.


global

Prononciation : [ˈgləʊbl]
Explication : global, global

Formation continue
||
<?php function hello(){ $GLOBALS['que'] = '提神喝茶更好哟'; echo '你调了一下函数hello<br />'; } hello(); echo $que; ?>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel