Maison >développement back-end >tutoriel php >Quelles sont les restrictions de type pour les paramètres de fonction PHP ?
Les restrictions de type de paramètre de fonction PHP peuvent être spécifiées via des indications de type, une fonctionnalité qui permet de spécifier les types attendus pour les paramètres. Si le paramètre transmis ne correspond pas au type, une exception TypeError sera levée. PHP8 et supérieur prennent en charge les types d'union, permettant l'utilisation de plusieurs types possibles. Les outils d'analyse statique peuvent utiliser des indicateurs de type pour détecter les erreurs et éviter les incompatibilités de types d'exécution.
Restrictions de type des paramètres de fonction PHP
PHP prend en charge plusieurs types de données, mais les restrictions de type des paramètres de fonction sont très flexibles.
Conseils de type
PHP7 et versions ultérieures prennent en charge les conseils de type. Cette fonctionnalité vous permet de spécifier les types attendus pour les paramètres de fonction. Si l’argument passé ne correspond pas au type spécifié, une exception TypeError sera levée.
Syntaxe :
function functionName(int $parameter1, string $parameter2): void { // ... }
Types facultatifs
PHP8 et supérieur permettent de spécifier plusieurs types possibles à l'aide de types d'union. Si l'argument transmis correspond à l'un des types spécifiés, aucune exception ne sera déclenchée.
Syntaxe :
function functionName(int|string $parameter1): void { // ... }
Analyse statique
Certains environnements de développement et outils d'analyse statique, tels que PhpStorm, peuvent utiliser des indices de type pour détecter des erreurs potentielles. Cela permet d’identifier et de résoudre les incompatibilités de types avant l’exécution.
Cas pratique
Supposons que nous ayons une fonction calculateArea
pour calculer l'aire d'un rectangle :
function calculateArea(int $width, int $height): float { return $width * $height; }
Si une valeur non entière est passée, la fonction déclenchera une exception TypeError.
try { $area = calculateArea(1.5, 2.5); } catch (TypeError $e) { echo $e->getMessage(); }
Sortie :
Argument 1 passed to calculateArea() must be of the type int, float given
Remarque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!