PHP 8.4.1 Released!

Système de type

PHP utilise un système de type nominal avec une relation de sous-typage comportementale forte. La relation de sous-typage est vérifiée à la compilation, tandis que la vérification des types est vérifiée dynamiquement au moment de l'exécution.

Le système de type de PHP supporte plusieurs types atomiques qui peuvent être composés ensemble pour créer des types plus complexes. Certains de ces types peuvent être écrits sous forme de déclaration de type.

Types atomiques

Certains types atomiques sont des types qui sont étroitement intégrés au langage et ne peuvent être reproduits avec des types définis par l'utilisateur.

La liste des types de base est la suivante :

Types scalaires

Une valeur est considérée comme scalaire si elle est de type int, float, string ou bool.

Types définis par l'utilisateur

Il est possible de définir des types personnalisés avec des interfaces, des classes et des énumérations. Ceux-ci sont considérés comme des types définis par l'utilisateur, ou types de classe. Par exemple, une classe appelée Elephant peut être définie, puis des objets de type Elephant peuvent être instanciés, et une fonction peut demander un paramètre de type Elephant.

Types composites

Il est possible de combiner plusieurs types atomiques en des types composites. PHP permet de combiner les types de la manière suivante :

  • Intersection de classes-types (interfaces et noms de classes).
  • Union de types.

Intersection de types

Un type d'intersection accepte des valeurs qui satisfont plusieurs déclarations de type de classe, plutôt qu'une seule. Les types individuels qui forment le type d'intersection sont reliés par le symbole &. Par conséquent, un type d'intersection composé des types T, U et V s'écrit T&U&V.

Types d'union

Un type union accepte des valeurs de plusieurs types différents, plutôt qu'un seul. Les types individuels qui forment le type d'union sont reliés par le symbole |. Par conséquent, un type d'union composé des types T, U et V s'écrit T|U|V. Si l'un des types est un type d'intersection, il doit être mis entre parenthèses pour être écrit en DNF. T|(X&Y).

Alias de type

PHP supporte deux alias de type : mixed et iterable qui correspond au type type d'union de object|resource|array|string|float|int|bool|null et Traversable|array respectivement.

Note: PHP ne supporte pas les alias de type définis par l'utilisateur.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top