Maison >développement back-end >tutoriel php >Explication détaillée des exemples de portée de variable PHP
Qu'est-ce que la portée variable ?
Lors de l'utilisation de variables, elles doivent respecter les règles de définition des variables. Les variables doivent être utilisées dans une plage valide. Si la variable dépasse la plage limitée, la variable n'aura aucun sens. Tout comme si nous avons cent yuans, nous pouvons acheter des choses à moins de cent yuans. alors les cent yuans ne peuvent pas être utilisés. Cent dollars équivaut à cette variable, et la fourchette de cent dollars équivaut à la portée.
En raison de différentes portées, les variables PHP sont divisées en : variables locales, variables globales et variables statiques, comme indiqué dans le tableau suivant :
|
Description | ||||||||
Les variables locales | sont définies à l'intérieur la fonction La portée d'une variable est la portée de la fonction dans laquelle elle se trouve | ||||||||
Variables globales | Les variables en dehors de toutes les fonctions définies ont la portée de l'intégralité du fichier PHP, mais ne peuvent pas être utilisées dans les fonctions définies par l'utilisateur. Si vous souhaitez que les utilisateurs utilisent des variables globales dans des fonctions définies par l'utilisateur, utilisez le mot-clé global pour déclarer les variables globales |
||||||||
Les variables statiques | peuvent conserver la valeur de la variable après la fin de l'appel de fonction. Lorsqu'elle revient à nouveau dans sa portée, elle peut continuer à utiliser la valeur d'origine. Pour les variables générales, une fois la fonction appelée, la valeur des données qui y est stockée sera effacée et l'espace mémoire occupé sera libéré. Lors de l'utilisation de variables statiques, vous devez d'abord utiliser le mot-clé static pour déclarer la variable, et mettre le mot-clé static avant la variable à définir |
<?php header("content-type:text/html;charset=utf-8"); $exam= "在函数外定义"; //声明全局变量 function add(){ $exam="在函数内定义"; //声明局部变量 echo "在函数内输出的内容是:".$exam."<br/>"; //输出局部变量 } add(); //调用函数 echo "在函数外输出的内容是:".$exam; //输出全局变量 ?>Exemple
Cet exemple est utilisé pour comparer les variables affectées dans la fonction (variables locales) et les variables affectées en dehors de la fonction (variables globales). suit :
Les résultats d'exécution sont les suivants :
Les variables statiques peuvent être utilisées à de nombreux endroits. Par exemple, utilisez des variables statiques dans un blog pour enregistrer le nombre de visiteurs Chaque fois qu'un utilisateur visite et quitte, le nombre actuel de visiteurs peut être conservé. Les variables statiques peuvent également être utilisées dans les salles de discussion pour enregistrer le contenu des discussions des utilisateurs.
<?php function zdy0(){ static $message = 0; //初始化静态变量 $message+=1; echo $message." "; } function zdy1(){ $message = 0; //初始化静态变量 $message+=1; echo $message." "; } for ($i=0;$i<10;$i++) zdy0(); //输出1~10 echo "<br>"; for ($i=0;$i<10;$i++) zdy1(); //输出10个1 echo "<br>"; ?>ExempleDans l'exemple suivant, des variables statiques et des variables ordinaires sont utilisées pour générer une donnée en même temps pour voir la différence entre les fonctions des deux. Le code est le suivant :
Résultats d'exécution du code :
Exemple de détails :
Le La fonction personnalisée zdy() produit de 1 à 10 soit un total de 10 nombres, et la fonction zdy1() produit 10 1., car la fonction personnalisée zdy() contient la variable statique $message et $message dans la fonction zdy1( ) est une variable ordinaire. Les deux variables sont initialisées à 0 et les deux fonctions sont appelées respectivement à l'aide de boucles for. Par conséquent, la fonction zdy() conserve la valeur dans la variable statique $message après avoir été appelée. L'initialisation des variables statiques n'est effectuée que lors du premier appel de la fonction, et ne sera plus initialisée à l'avenir. Une fois la fonction zdy1() appelée, sa variable $message perd sa valeur d'origine et est réinitialisée à 0. Les variables globales sont accessibles n'importe où dans le programme, mais à l'intérieur de la fonction définie par l'utilisateur ne peuvent pas être utilisé. Si vous souhaitez que l'utilisateur utilise des variables globales dans une fonction définie par l'utilisateur, utilisez le mot-clé global pour déclarer la variable globale<?php header("content-type:text/html;charset=utf-8"); $zy="你好"; $zyy="PHP中文网"; function lxt(){ echo $zy."<br>"; //$zy 不能被调用,没有输出 global $zyy; //利用关键字global 在函数内部说明,不说明认为是私有变量 echo $zyy."<br>"; //调用$zyy } lxt(); ?>Exemple
Ce qui suit s'applique aux variables globales dans la fonction personnalisée avec des variables globales ne doit pas être utilisée à des fins de comparaison. Dans cet exemple, deux variables globales $zy et $zyy sont définies dans la fonction définie par l'utilisateur lxt(), nous espérons les appeler aux lignes 5 et 7, mais le résultat de sortie du programme n'est que la valeur de $zyy "Site Web PHP chinois" car la variable globale $zyy est déclarée avec le mot-clé global à la ligne 6. Il n'y aura aucune sortie à la ligne 5 et $zy n'a rien à voir avec $zy dans la deuxième ligne. L'exemple de code est le suivant :
Résultats de l'exécution du code :
.C'est la différence entre appliquer des variables globales et ne pas appliquer de variables globales. Dans la section suivante, nous expliquerons "
Variables variables" Vidéo connexe recommandée. tutoriels : "php .cn Dugu Jiujian (4) - Tutoriel vidéo PHP》Portée des variablesCe 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!