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