Maison > développement back-end > tutoriel php > Explication détaillée de la portée des variables PHP

Explication détaillée de la portée des variables PHP

墨辰丷
Libérer: 2023-03-25 18:56:01
original
2205 Les gens l'ont consulté

La portée d'une variable est le contexte dans lequel elle est définie (c'est-à-dire sa portée effective). En JavaScript, il n'existe pas de concept de portée variable. Un concept similaire peut être celui de portée. Cependant, comme JavaScript utilise une portée lexicale, qui fait référence à la position à laquelle la variable est déclarée ; et que PHP n'a pas de déclaration de variable, la variable équivaut à déclarer la variable lorsqu'une valeur lui est attribuée pour la première fois. Les deux ne sont donc pas identiques. Cet article présentera en détail la portée des variables en PHP.

1. Variables locales
Les variables locales sont des variables déclarées dans une fonction, et leur portée est limitée à l'intérieur de la fonction. Les paramètres d'une fonction sont également des variables locales. La différence est que la valeur du paramètre de la fonction provient de la valeur transmise lors de son appel. Après l'exécution, toutes les variables dynamiques à l'intérieur de la fonction seront libérées.

<?php
    function a($b){
        $c = 1;        echo "$b+$c = " . ($b+$c) . &#39;<br />&#39;;
    }
    a(2);//输出3
    echo $b+$c;//函数外部的非法访问,报notice错误,并输出0
?>
Copier après la connexion

2. Variables globales
Les variables définies en dehors de la fonction sont appelées variables globales et leur portée s'étend du début de la variable définie à la fin du fichier programme. .
De plus, les variables globales ne peuvent pas être appelées directement dans une fonction. Vous devez utiliser le mot-clé global. Vous pouvez également utiliser $GLOBALS au lieu de global. $GLOBALS est une variable superglobale.

<?php
    //示例1
    $a = 1;    $b = 2;    function Sum(){
        global $a, $b;        $b = $a + $b;
    }
    Sum();    echo $b;//输出的结果是3

    //示例2
    $c = 1;    $d = 2;    function Sum()
    {
        $GLOBALS[&#39;d&#39;] = $GLOBALS[&#39;c&#39;] + $GLOBALS[&#39;d&#39;];
    }
    Sum();    echo $d;//输出3
?>
Copier après la connexion

3. Variables statiques
Les variables statiques n'existent que dans la portée de la fonction locale, mais lorsque l'exécution du programme quitte cette portée, sa valeur n'est pas perdue. Les variables statiques sont déclarées avec static, et celles qui ne sont pas déclarées statiquement sont des variables dynamiques par défaut. Une fois la fonction exécutée, les variables statiques internes sont déjà stockées en mémoire. Elle n'est initialisée que lors du premier appel de la fonction lors de l'exécution du script.

<?php
    function test()
    {
        static $a = 0;        echo $a;        $a++;
    }
    test();//输出0
    test();//输出1
?>
Copier après la connexion

Les variables statiques fournissent également un moyen de gérer les fonctions récursives. Une fonction récursive est une fonction qui s'appelle elle-même. Soyez prudent lorsque vous écrivez des fonctions récursives, car elles peuvent réapparaître indéfiniment. Vous devez vous assurer qu'il existe des moyens adéquats pour mettre fin à la récursion. La fonction simple suivante compte récursivement jusqu'à 10, en utilisant la variable statique $count pour déterminer quand arrêter

<?php
    function test()
    {
        static $count = 0;        $count++;        echo $count;        if ($count < 10) {
            test();
        }        $count--;
    }
?>
Copier après la connexion

Recommandations associées :

portée de la variable php

Portée des variables php, variables globales php et variables statiques

Introduction à la variable php scope_Tutoriel PHP

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal