PHP
PHP / MySql

Recherche
 
ManuelPHP.com

Le mot clé global
<<<
Utilisation des variables static Les références avec les variables global et static
>>>

5.3.3 Portée des variables
5.3 Les variables
5 Référence du langage
 Manuel PHP

Le mot clé global
->Utilisation des variables static
Les références avec les variables global et static

5.3.3.2 Utilisation des variables static

Une autre caractéristique importante de la portée des variables est la notion de variable static . Une variable statique a une portée locale uniquement, mais elle ne perd pas sa valeur lorsque le script appelle la fonction. Prenons l'exemple suivant :

Les variables statiques

<?php
function Test()
{
    
$a = 0;
    echo
$a;
    
$a++;
}
?>

Cette fonction est un peu inutile car à chaque fois qu'elle est appelée, elle initialise $a à 0 et affiche "0". L'incrémentation de la variable ( $a ++) ne sert pas à grand chose, car dès que la fonction est terminée, la variable disparaît. Pour faire une fonction de comptage utile, c'est-à-dire qui ne perdra pas la trace du compteur, la variable $a est déclarée comme une variable statique :

Les variables statiques (2)

<?php
function Test() {
    static
$a = 0;
    echo
$a;
    
$a++;
}
?>

Maintenant, à chaque fois que la fonction Test() est appelée, elle affichera une valeur de $a incrémentée de 1.

Les variables statiques sont essentielles lorsque vous faîtes des appels récursifs à une fonction. Une fonction récursive est une fonction qui s'appelle elle-même. Il faut faire attention lorsque vous écrivez une fonction récursive car il est facile de faire une boucle infinie. Vous devez vérifier que vous avez bien une condition qui permet de terminer votre récursivité. La fonction suivante compte récursivement jusqu'à 10 :

Les variables statiques et la récursivité

<?php
function Test()
{
    static
$count = 0;
    
$count++;
    echo
$count;
    if (
$count < 10) {
        
Test();
    }
    
$count--;
}
?>

Note

Les variables statiques doivent être déclarées comme dans l'exemple ci-dessus. Tenter d'assigner des valeurs à ces variables qui sont le résultat d'expressions causera une erreur d'analyse.

Déclaration de variables statiques

<?php
function foo(){
    static
$int = 0;          // correct
    
static $int = 1+2;        // faux  (car c'est une expression)
    
static $int = sqrt(121);  // faux  (car c'est aussi une expression)

    
$int++;
    echo
$int;
}
?>

<< Utilisation des variables static >>
Le mot clé global Portée des variables Les références avec les variables global et static





Google

Services webmasters

Les manuels
 

ManuelPHP.com © 2003-2012 Tigersun - Crédits
Webmaster Site Internet - Télécharger des Logiciels - Programme TV - Entraide Informatique - Agence de Communication
2018-12-16