Maison > Article > développement back-end > Comment implémenter une vérification de type stricte des paramètres de fonction en PHP ?
La vérification stricte du type de paramètre de fonction PHP peut garantir que les paramètres transmis sont cohérents avec le type déclaré. Lorsqu'ils sont activés via declare(strict_types=1), les paramètres de fonction doivent correspondre au type spécifié, sinon une exception TypeError est levée. La vérification stricte prend en charge les types de base (int, float), les types composites (objets, tableaux), les types d'union (int|string) et les types facultatifs (?int) pour améliorer la robustesse du code et empêcher la transmission d'un mauvais type de paramètres.
La vérification du type de paramètre de fonction PHP fait référence au processus de vérification si le type de paramètre réellement passé est cohérent avec le type de paramètre déclaré par la fonction lorsqu'une fonction est appelée. La robustesse de votre code peut être améliorée par une vérification stricte pour garantir que les paramètres transmis à la fonction sont conformes aux attentes.
Dans PHP 7.0 et supérieur, vous pouvez utiliser l'instruction Declare
pour effectuer une vérification stricte des types de paramètres de fonction : Declare
语句对函数参数类型进行严格检查:
declare(strict_types=1); function add(int $a, int $b) {...}
通过 strict_types=1
声明启用严格模式后,函数 add
要求传入两个整数类型的参数,否则将抛出 TypeError 异常。
PHP 支持以下基本类型和复合类型的严格检查:
int
、float
、bool
、string
、null
复合类型:
object
或 Class
array
int|string
?int
场景:
定义一个函数 calculateArea
,计算几何图形的面积。需要根据不同的图形类型,传递不同的参数:
function calculateArea($shape, $params) {...}
使用类型检查防止参数错误:
declare(strict_types=1); function calculateArea(string $shape, array $params): float {...}
通过 strict_types
声明和明确的参数类型,可以防止传递错误类型的参数。例如:
calculateArea(123, []); // 抛出 TypeError 异常
使用联合类型提高灵活性:
function calculateArea(string $shape, int|float $radius): float {...}
联合类型允许函数根据不同的情况接收不同类型的参数。例如,计算圆形或正方形的面积:
calculateArea('circle', 5); calculateArea('square', 10);
null
值,可以使用可选类型 ?
rrreeestrict_types=1
déclaration Enfin, la fonction add
nécessite que deux paramètres de type entier soient passés, sinon une exception TypeError sera levée. int
, float
, bool code>, <code>string
, null
🎜🎜🎜Type composite : 🎜object
ou Class
🎜🎜Type de tableau : array
🎜🎜Type d'union : int|string
🎜🎜Type facultatif : ?int
🎜🎜🎜🎜 🎜Cas de combat pratique 🎜🎜Scénario :🎜🎜Définissez une fonction calculateArea
pour calculer l'aire d'une figure géométrique. Différents paramètres doivent être transmis en fonction des différents types de graphiques : 🎜rrreee🎜Utilisez la vérification de type pour éviter les erreurs de paramètres : 🎜rrreee🎜Grâce à la déclaration strict_types
et à l'effacement des types de paramètres, vous pouvez empêcher de passer un argument du mauvais type. Par exemple : 🎜rrreee🎜Utilisez les types d'union pour augmenter la flexibilité :🎜rrreee🎜Les types d'union permettent aux fonctions de recevoir différents types de paramètres en fonction de différentes situations. Par exemple, calculer l'aire d'un cercle ou d'un carré : 🎜rrreee🎜Points à noter🎜nulle
, vous pouvez utiliser le type facultatif ?
. 🎜🎜Lorsque le mode strict est activé, les types doivent être explicitement spécifiés pour tous les paramètres d'une fonction, y compris les paramètres facultatifs. 🎜🎜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!