Maison  >  Article  >  développement back-end  >  Comment utiliser des fonctions comme rappels en PHP ?

Comment utiliser des fonctions comme rappels en PHP ?

王林
王林original
2024-04-10 17:51:01830parcourir

Pour utiliser des fonctions comme rappels en PHP, vous pouvez utiliser des fonctions anonymes ou des fonctions nommées. La syntaxe de la fonction anonyme est : $callback = function ($argument) { return $result }. Les fonctions nommées ont des noms et sont définies comme des fonctions normales. Les fonctions intégrées couramment utilisées acceptent les rappels comme paramètres, tels que array_map(), array_filter(), usort(). Dans des cas pratiques, vous pouvez utiliser des fonctions de rappel pour définir des règles de validation personnalisées et les transmettre à la fonction de vérification, comme le rappel de vérification par e-mail : function validateEmail($email) { return filter_var($email, FILTER_VALIDATE_EMAIL });

如何在 PHP 中使用函数作为回调?

Comment utiliser des fonctions comme rappels en PHP

Une fonction de rappel est une fonction qui est appelée dans une autre fonction. En PHP, vous pouvez utiliser des fonctions anonymes (fermetures) ou des fonctions nommées comme rappels.

Utilisez des fonctions anonymes comme rappels

Les fonctions anonymes sont des fonctions sans nom qui peuvent être créées en cas de besoin. Pour créer une fonction anonyme, utilisez la syntaxe suivante :

$callback = function ($argument) { return $result; };

Par exemple, créez une fonction de rappel qui ajoute 5 à un nombre :

$add5 = function ($num) { return $num + 5; };

Utilisez une fonction nommée comme rappel

Une fonction nommée est une fonction qui a un nom et peut être utilisé comme une fonction régulière Même définition. Pour utiliser une fonction nommée comme rappel, donnez un nom à la fonction.

Par exemple, créez une fonction de rappel qui met un nombre au carré et ajoute 10 :

function squareAndAdd10($num) { return $num * $num + 10; }

Appelle une fonction qui utilise un rappel

Certaines fonctions intégrées acceptent les rappels comme arguments, par exemple :

  • array_map() code> : applique le rappel à chaque élément du tableau
  • array_map(): 将回调应用于数组中的每个元素
  • array_filter(): 过滤数组元素,根据回调的结果返回 TRUE 或 FALSE
  • usort(): 根据回调中定义的排序条件对数组进行排序

例如,使用 array_map()$add5 回调应用到数组 $numbers:

$numbers = [1, 2, 3, 4, 5];
$result = array_map($add5, $numbers);

此时,$result 将包含 [6, 7, 8, 9, 10]

实战案例

使用回调函数的一个常见例子是添加自定义验证规则。假设你有一个处理表单的函数,你想验证表单字段的值。你可以使用回调来定义自定义验证规则,并将该规则传递给验证函数。

例如,创建一个回调来验证 email 地址:

function validateEmail($email) { return filter_var($email, FILTER_VALIDATE_EMAIL); }

然后,你可以将此回调传递给表单验证函数:

$validator = new FormValidator();
$validator->addRule('email', 'validateEmail');

现在,FormValidator 将会使用 validateEmailarray_filter() : filtre les éléments du tableau en renvoyant VRAI ou FAUX selon le résultat de le rappel

usort() : Trie le tableau selon les conditions de tri définies dans le rappel🎜Par exemple, utilisez array_map() pour ajouter <code>$add5 Le rappel est appliqué au tableau $numbers :🎜rrreee🎜À ce stade, $result contiendra [6, 7, 8, 9, 10]. 🎜🎜🎜Cas pratique🎜🎜🎜Un exemple courant d'utilisation de fonctions de rappel consiste à ajouter des règles de validation personnalisées. Disons que vous disposez d'une fonction qui gère un formulaire et que vous souhaitez valider la valeur d'un champ de formulaire. Vous pouvez utiliser des rappels pour définir des règles de validation personnalisées et transmettre cette règle à la fonction de validation. 🎜🎜Par exemple, créez un rappel pour valider une adresse email : 🎜rrreee🎜Vous pouvez ensuite transmettre ce rappel à la fonction de validation du formulaire : 🎜rrreee🎜Maintenant, FormValidator utilisera validateEmail code> Rappel pour vérifier l’adresse e-mail. 🎜

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