Maison  >  Article  >  développement back-end  >  Comment vérifier les types de paramètres de fonction PHP ?

Comment vérifier les types de paramètres de fonction PHP ?

王林
王林original
2024-04-10 18:33:02490parcourir

Comment vérifier les types de paramètres de fonction en PHP : utilisez typehints pour spécifier les types de paramètres et de valeurs de retour, et lancez une exception TypeError ; utilisez getType() pour obtenir le type réel de la variable, qui est utilisé pour les instructions conditionnelles ; pour vérifier la condition et la lancer lorsqu'il s'agit de fausses exceptions et messages d'erreur AssertionError.

如何检查 PHP 函数参数类型?

Comment vérifier les types de paramètres de fonction PHP

Préface

Dans le développement moderne, la vérification de type devient de plus en plus importante, elle peut améliorer la maintenabilité et la fiabilité du code. Le langage PHP propose plusieurs méthodes pour vérifier les types de paramètres de fonction.

Méthode 1 : Utiliser les typehints

Les Typehints sont un sucre syntaxique introduit dans PHP 7 qui vous permet de spécifier les types de paramètres attendus dans la déclaration de fonction.

function add(int $a, int $b): int {
    return $a + $b;
}

int typehint spécifie que les paramètres et la valeur de retour sont tous deux de types entiers. Si l’argument passé n’est pas un entier, PHP lèvera une exception TypeError. int typehint 指定参数和返回值都是整数类型。如果传递的参数不是整数,PHP 将抛出 TypeError 异常。

方法 2:使用 getType()

getType() 函数可以获取变量的实际类型。

function isString(mixed $value): bool {
    return gettype($value) === 'string';
}

mixed typehint 指定参数可以是任何类型。gettype() 函数返回变量的实际类型,以便在条件语句中使用。

方法 3:使用 assert()

assert() 函数可以在运行时检查条件。如果条件为假,它将抛出 AssertionError 异常。

function validateEmail(string $email): void {
    assert(filter_var($email, FILTER_VALIDATE_EMAIL), 'Invalid email address');
}

assert() 函数接受两个参数:条件和错误消息。如果条件为假,它将抛出 AssertionError 异常并显示错误消息。

实战案例

假设我们有一个处理用户输入的函数。我们可以使用 typehints 和 assert() 来检查输入是否有效:

function processInput(array $data): void {
    assert(array_key_exists('name', $data), 'Missing "name" field');
    assert(array_key_exists('email', $data), 'Missing "email" field');
    assert(filter_var($data['email'], FILTER_VALIDATE_EMAIL), 'Invalid email address');

    // 处理经过验证的输入...
}

在这个例子中,我们确保 $data 数组包含 nameemail

🎜Méthode 2 : utilisez la fonction getType()🎜🎜🎜getType() pour obtenir le type réel de la variable. 🎜rrreee🎜mixed typehint spécifie que le paramètre peut être de n'importe quel type. La fonction gettype() renvoie le type réel d'une variable à utiliser dans les instructions conditionnelles. 🎜🎜🎜Méthode 3 : utilisez la fonction assert()🎜🎜🎜assert() pour vérifier les conditions au moment de l'exécution. Si la condition est fausse, une exception AssertionError sera levée. La fonction 🎜rrreee🎜assert() accepte deux paramètres : la condition et le message d'erreur. Si la condition est fausse, elle lèvera une exception AssertionError et affichera un message d'erreur. 🎜🎜🎜Cas pratique🎜🎜🎜Supposons que nous ayons une fonction qui gère les entrées de l'utilisateur. Nous pouvons utiliser typehints et assert() pour vérifier si l'entrée est valide : 🎜rrreee🎜Dans cet exemple, nous nous assurons que le tableau $data contient name et email, et l'adresse e-mail est valide. Si ces conditions ne sont pas remplies, une exception AssertionError est levée et un message d'erreur approprié s'affiche. 🎜

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!

Déclaration:
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