Maison  >  Article  >  développement back-end  >  Explication détaillée des exemples de portée de variable PHP

Explication détaillée des exemples de portée de variable PHP

怪我咯
怪我咯original
2017-04-27 17:12:332315parcourir

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 :

作用域 说明
局部变量 在函数的内部定义的变量,作用域就是所在的函数范围
全局变量 在被定义所有的函数以外的变量,作用域是整个PHP文件,但是在用户自定义函数内部是不能使用的。如果希望用户在用户自定义函数内部使用全局变量,则使用global关键字声明全局变量
静态变量 能够在函数调用结束后仍保留变量值,当再次回到其作用域,又可以继续使用原来的值。而一般变量是在函数调用后,其存储的数据值会被清除,所占用的内存空间也会被释放。使用静态变量时,先要用关键字static来声明变量,把关键字static放在要定义的变量之前
Portée

Explication détaillée des exemples de portée de variable PHP 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

La portée d'une variable définie à l'intérieur d'une fonction est la fonction dans laquelle elle se trouve. Si elle est attribuée en dehors de la fonction, elle sera considérée comme une variable complètement différente. En quittant la fonction dans laquelle la variable a été déclarée, la variable et sa valeur correspondante sont effacées.
<?php
header("content-type:text/html;charset=utf-8");

$exam= "在函数外定义";                                     //声明全局变量

function add(){

    $exam="在函数内定义";                                //声明局部变量
    echo "在函数内输出的内容是:".$exam."<br/>";         //输出局部变量
}
add();                                                  //调用函数
echo "在函数外输出的内容是:".$exam;                    //输出全局变量


?>

Exemple

Explication détaillée des exemples de portée de variable PHPCet 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>";
?>

Exemple

Explication détaillée des exemples de portée de variable PHP

Dans 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 $zyyExplication détaillée des exemples de portée de variable PHP "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 variables

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!

Déclaration:
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