vendredi 25 septembre 2026

À propos

Contact

Lexique · PHP

Méthode statique

En anglais : « Static method »

Méthode qui appartient à la classe elle-même plutôt qu'à une instance particulière, et qu'on appelle sans créer d'objet au préalable.

La plupart des méthodes ont besoin d’une instance pour fonctionner : elles lisent ou modifient l’état propre à cet objet. Une méthode statique, elle, se comporte comme une simple fonction rangée dans une classe pour des raisons d’organisation : elle ne dépend d’aucun objet particulier et peut être appelée directement sur la classe.

Fonctionnement en PHP

On la déclare avec le mot-clé static et on l’appelle avec l’opérateur :: : MaClasse::maMethode(). À l’intérieur d’une méthode statique, $this n’existe pas, puisqu’il n’y a pas d’instance ; on utilise self:: ou static:: pour référencer la classe elle-même.

Dans WordPress

Les classes de blocs Gutenberg et certaines API orientées objet exposent des méthodes statiques comme point d’entrée, par exemple des méthodes register() qui déclarent un bloc sans qu’on ait besoin d’instancier la classe. C’est aussi un moyen courant d’implémenter un patron singleton pour une classe de plugin unique en son genre, où une seule instance doit exister pendant toute la durée de la requête. Certaines fonctions utilitaires internes du cœur, exposées via des classes wrapper, suivent le même principe pour rester appelables sans configuration préalable.

Exemple

class Convertisseur {
    public static function centimetresEnPouces(float $cm): float {
        return $cm / 2.54;
    }
}

echo Convertisseur::centimetresEnPouces(10);

À ne pas confondre avec

Une méthode statique n’est pas une méthode « globale » indépendante de toute classe : elle reste soumise à la visibilité (private, protected) et peut être héritée ou redéfinie par une classe fille. Abuser des méthodes statiques rend cependant le code plus difficile à tester, car on ne peut pas facilement remplacer leur comportement par un double de test lors d’une suite de tests unitaires, contrairement à une méthode d’instance qu’on peut substituer via une interface.