Maison  >  Article  >  développement back-end  >  Quelle est la différence entre les variables statiques et les variables globales en PHP ?

Quelle est la différence entre les variables statiques et les variables globales en PHP ?

亚连
亚连original
2018-05-17 14:06:173515parcourir

● La portée des variables globales s'étend du point de définition jusqu'à la fin du fichier source. La période de stockage est allouée en mémoire après la définition, et la mémoire est libérée après la sortie du programme

● Le la portée des variables locales est locale et la période de stockage est définie. Après avoir alloué de la mémoire, libérez la mémoire après avoir quitté la portée ;

● Les variables globales sont par défaut des variables statiques et les variables locales sont par défaut des variables automatiques. Elles peuvent également être déclarées comme variables statiques. La différence entre les variables statiques et les variables automatiques est La différence de période de stockage, la période de stockage des variables statiques est que l'espace mémoire existe pendant l'exécution du programme et n'est libéré qu'à la sortie du programme. ;

● L'espace mémoire des variables automatiques n'existe que dans le scope et est libéré après la sortie du scope .

Caractéristiques des variables locales statiques :

1. Elle ne changera pas lorsque la fonction est appelée et se termine. Cependant, bien que la variable continue d'exister, elle ne peut pas être utilisée. il. Si la fonction qui la définit est appelée à nouveau, elle peut continuer à être utilisée, et la valeur laissée après l'appel précédent est enregistrée

2 Les variables locales statiques ne seront initialisées qu'une seule fois

3. . Les propriétés statiques ne peuvent être initialisées qu'avec une valeur de caractère ou une constante, pas avec des expressions. Même si une variable statique locale est définie sans valeur initiale, le système attribuera automatiquement une valeur initiale de 0 (pour les variables numériques) ou un caractère nul (pour les variables de caractères) ;

4. Lorsqu'une fonction est appelée plusieurs fois et que les valeurs de certaines variables doivent être conservées entre les appels, des variables locales statiques peuvent être prises en compte. Bien que les variables globales puissent également être utilisées pour atteindre l'objectif ci-dessus, les variables globales provoquent parfois des effets secondaires inattendus, il est donc toujours préférable d'utiliser des variables statiques locales.

Le code est le suivant :

function test()
{
  
 static $var = 5;  //static $var = 1+1;就会报错
    
$var++;  
 echo $var . ' ';
}
test(); //2
test(); //3
test(); //4echo $var; //报错:Notice: Undefined variable: var

À propos des variables globales statiques :

Le code est le suivant :

//全局变量本身就是静态存储方式,所有的全局变量都是静态变量
function static_global(){
    global $glo;    
       $glo++;    
      echo $glo.&#39;<br>&#39;;
}
static_global(); //1
static_global(); //2
static_global(); //3
echo $glo . &#39;<br>&#39;; //3

Les variables globales statiques ne sont donc pas beaucoup utilisées.

Ce qui précède sont les variables statiques et globales en PHP que j'ai compilées pour vous. J'espère que cela vous sera utile à l'avenir.

Articles associés :

Portée des variables PHP et variables globales (tutoriel image et texte)

Une astuce, fermer en PHP L'utilisation et la différence d'utilisation dans les fonctions du package, ainsi que la signification de & référence vous seront expliqués en détail

Explication détaillée du didacticiel de mot-clé de classe et de méthode 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!

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