# Propriété statique

> Propriété rattachée à la classe elle-même et partagée par toutes ses instances, au lieu d'exister séparément dans chaque objet créé.

- Auteur : Clément Hadrot
- Publié le : 2026-09-25
- Mis à jour le : 2026-09-25
- URL : https://wpmoderne.dev.wordpress-developpement.fr/lexique/propriete-statique/

Chaque objet créé à partir d'une classe possède normalement son propre jeu de propriétés, indépendant des autres. Une propriété statique, à l'inverse, est unique et commune : la modifier depuis un objet se répercute immédiatement pour tous les autres, un peu comme un compteur affiché sur un tableau commun plutôt qu'une ardoise individuelle.

## Déclaration en PHP

Elle se déclare avec le mot-clé `static` et se manipule avec l'opérateur `::` plutôt que `->` : `class Compteur { public static int $total = 0; }` puis `Compteur::$total++;`. Elle conserve sa valeur pendant toute la durée d'exécution du script, contrairement à une variable locale.

## Dans WordPress

On s'en sert pour mettre en cache un résultat coûteux à calculer et partagé par toutes les instances d'une classe, par exemple la liste des taxonomies déjà interrogées dans une même requête. C'est aussi le mécanisme classique derrière un patron singleton, où une propriété statique conserve l'unique instance de la classe d'un plugin.

## Exemple

```
class Plugin {
    private static ?Plugin $instance = null;

    public static function instance(): Plugin {
        if (self::$instance === null) {
            self::$instance = new self();
        }
        return self::$instance;
    }
}
```

## Pièges fréquents

Comme une propriété statique survit entre les appels d'une même requête PHP, elle peut introduire un état partagé difficile à tracer, surtout dans un contexte où plusieurs requêtes s'exécutent en parallèle sur le serveur. Elle est aussi héritée par les classes filles, mais partagée entre elles sauf si chacune la redéclare explicitement.
