Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Variable statique hors d’une méthode

<?php


namespace x {
    foreach([1,2] as $i) {
        static $s = 0;
        
        print $s + $i;
        ++$s;
    }
    
}

// 13

?>

TIL que les variables statiques PHP peuvent être déclarées en dehors d’une fonction, dans l’espace de noms.

Dans ce cas, il s’agit d’une simple variable avec une valeur par défaut. Il n’y a aucun moyen de rappeler la portée globale (ce qui n’a aucun sens). En fait, inclure le même fichier recommence simplement le contexte et la variable statique.

Un avertissement du linter pourrait être utile.

En PHP 8.3, les définitions dupliquées de variables static sont interdites. Pas dans une boucle, ce qui est de toute façon une mauvaise pratique.

See Also

PHP Features

Last updated: 11 October 2026