vendredi 25 septembre 2026

À propos

Contact

Lexique · PHP

Typage strict

En anglais : « Strict typing »

Mode d'exécution PHP où les types déclarés doivent correspondre exactement, sans conversion automatique silencieuse entre chaîne, entier ou booléen.

Par défaut, PHP se montre conciliant : passer la chaîne "5" à une fonction attendant un entier fonctionne quand même, la valeur étant convertie au vol. Le typage strict désactive cette souplesse : une incompatibilité de type devient une erreur immédiate plutôt qu’une conversion silencieuse qui peut cacher un bug.

Activation en PHP

On l’active fichier par fichier avec la directive declare(strict_types=1); placée en toute première ligne exécutable du script, avant même l’ouverture d’une classe ou d’une fonction. Elle ne s’applique qu’aux appels de fonctions typées effectués depuis ce fichier, pas globalement au projet entier.

Dans WordPress

Le cœur de WordPress n’active pas le typage strict, pour préserver la compatibilité avec du code ancien qui jongle librement entre types. Dans une extension récente écrite entièrement en orienté objet, l’activer dès le départ aide à repérer tôt les erreurs de type, en particulier quand on manipule des données issues de $_POST ou d’une API externe, toujours reçues sous forme de chaînes.

Exemple

declare(strict_types=1);

function doublerPrix(float $prix): float {
    return $prix * 2;
}

doublerPrix(19.90);  // fonctionne
doublerPrix("19.90"); // TypeError en mode strict

Pièges fréquents

Introduire le typage strict sur un fichier existant qui recevait jusque-là des chaînes numériques depuis des formulaires ou une API tierce peut casser du code qui fonctionnait « par chance » grâce aux conversions automatiques. Il faut alors caster explicitement les valeurs, par exemple avec (int) ou (float), avant de les transmettre.