Allocation et initialisation des variables statiques au niveau des fonctions : une plongée plus approfondie
Bien que les variables globales soient généralement allouées et initialisées au démarrage du programme, l'allocation et l'initialisation des variables statiques au niveau de la fonction suivent un modèle plus nuancé.
Lorsque les variables statiques au niveau de la fonction sont allouées
Contrairement aux variables globales, les variables statiques au niveau de la fonction sont attribué lors de la première saisie de la fonction. Cela contraste avec l'allocation de variables locales, qui se produit à chaque fois que la fonction est appelée.
Lorsque les variables statiques au niveau de la fonction sont initialisées
L'initialisation de la fonction Les variables statiques de niveau n'apparaissent qu'une seule fois, la première fois que la fonction est saisie. En effet, le mot clé static garantit que la variable conserve sa valeur lors de plusieurs appels de fonction.
Un exemple de clarté
Considérez l'extrait de code suivant :
void doSomething() { static bool globalish = true; // ... }
Lorsque l'exécution du programme atteint la fonction doSomething pour la première fois, la variable globale sera allouée dans le cadre de pile de la fonction. Ensuite, son initialisation à true aura lieu. Lors des appels ultérieurs à la fonction doSomething, la variable globale sera déjà allouée et initialisée, et sa valeur sera conservée.
Conclusion
En résumé, au niveau de la fonction les variables statiques sont allouées lors de la première saisie de la fonction et ne sont initialisées qu'une seule fois, lors de cette première entrée. Ce comportement diffère à la fois des variables globales et des variables locales, fournissant un mécanisme unique et utile pour conserver les données persistantes au sein des fonctions.
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!