Maison > développement back-end > tutoriel php > Comment personnaliser la validation de type pour les paramètres de fonction PHP ?

Comment personnaliser la validation de type pour les paramètres de fonction PHP ?

王林
Libérer: 2024-04-10 15:15:02
original
956 Les gens l'ont consulté

La validation des types de paramètres de fonction personnalisée en PHP peut appliquer les types de paramètres pour garantir qu'ils sont comme prévu, améliorant ainsi la robustesse du code. Ceci peut être réalisé par : Indices de type : déclarez les types attendus de paramètres de fonction, les types incompatibles lèveront une exception. Conversion de type : utilisez la fonction ou l'opérateur settype pour convertir une variable en un type spécifié. Inférence de type : PHP déduit automatiquement les types de variables, par exemple lors de l'attribution de valeurs. Validation personnalisée : créez une fonction de validation personnalisée pour valider des types spécifiques (tels que les dates). Cas pratique : démontrer l'utilisation de la vérification personnalisée via la fonction de vérification du nom pour garantir que la longueur et le format du nom répondent aux exigences.

如何自定义 PHP 函数参数的类型验证?

Comment personnaliser la validation de type des paramètres de fonction PHP

En PHP, la validation de type des paramètres de fonction vous permet de forcer les types de paramètres transmis pour vous assurer qu'ils correspondent aux attentes. Cela contribue à améliorer la robustesse et la fiabilité de votre code.

Indices de type

PHP 7.0 a introduit des indices de type, vous permettant de déclarer les types attendus de paramètres de fonction. Vous pouvez utiliser des types intégrés ou créer vos propres classes.

function sum(int $num1, int $num2)
{
    return $num1 + $num2;
}
Copier après la connexion

Si les paramètres transmis ne correspondent pas au type déclaré, PHP lancera une exception TypeError. TypeError 异常。

类型转换与类型推断

PHP 支持类型转换和类型推断:

  • 类型转换:使用 settype
  • Conversion de type et inférence de type
  • PHP prend en charge la conversion de type et l'inférence de type :

Conversion de type :

Utilisez la fonction settype ou l'opérateur de conversion pour convertir la variable dans le type spécifié.

Inférence de type :

Dans certains cas, PHP peut déduire le type d'une variable, par exemple lors de l'attribution d'une valeur.

// 类型转换
$int = (int) '10';

// 类型推断
$array = [1, 2, 3];
Copier après la connexion

Vérification de type personnalisé

Pour les besoins qui ne peuvent pas être satisfaits par les types intégrés, vous pouvez créer une fonction de vérification personnalisée.

function validateDate(string $date): bool
{
    if (preg_match('/^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$/', $date)) {
        return true;
    }

    return false;
}

function formatDate(string $date)
{
    if (!validateDate($date)) {
        throw new InvalidArgumentException('Invalid date format.');
    }

    //...
}
Copier après la connexion

Cas pratique

    Ce qui suit est une fonction qui vérifie le nom saisi par l'utilisateur :
  • function validateName(string $name): void
    {
        if (strlen($name) < 3 || strlen($name) > 25) {
            throw new InvalidArgumentException('Name must be between 3 and 25 characters long.');
        }
    
        if (!preg_match('/^[a-zA-Z ]+$/', $name)) {
            throw new InvalidArgumentException('Name must contain only letters and spaces.');
        }
    }
    Copier après la connexion
    Cette fonction utilise une validation personnalisée pour garantir que le nom transmis répond aux exigences.
  • Avantages
  • La validation de type personnalisée offre les avantages suivants :
  • Assure la validité des paramètres de fonction 🎜🎜 Améliore la lisibilité et la maintenabilité du code 🎜🎜 Réduit les erreurs en forçant les types 🎜🎜 Facilite les tests unitaires et le développement piloté par les tests 🎜🎜

    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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal