Maison développement back-end Problème PHP Utilisation de la fonction de rappel php

Utilisation de la fonction de rappel php

May 28, 2023 pm 08:14 PM

La fonction de rappel est une technologie très courante dans la programmation PHP, et c'est aussi un problème que les débutants rencontreront d'innombrables fois. Comment utiliser correctement les fonctions de rappel peut rendre votre programme PHP plus flexible et intelligent.

1. Qu'est-ce qu'une fonction de rappel ?

En termes simples, une fonction de rappel est un bloc de code exécutable qui peut être appelé dynamiquement en cas de besoin. À l'origine, il était principalement utilisé pour le traitement d'événements, mais il est désormais également largement utilisé pour implémenter des moteurs de modèles, le traitement de données et d'autres fonctions.

L'un des avantages des fonctions de rappel est l'abstraction. Si vous souhaitez utiliser une interface simple pour permettre aux utilisateurs d'appeler la fonction que vous souhaitez implémenter, vous pouvez fournir une interface via la fonction de rappel et permettre aux utilisateurs de transmettre leurs propres méthodes d'implémentation. Lorsque le programme est en cours d'exécution, votre programme utilise les méthodes transmises pour exécuter des fonctions spécifiques.

2. Scénarios d'utilisation des fonctions de rappel

Les fonctions de rappel ont de nombreux scénarios d'application, qui sont présentés ci-dessous :

  1. Traitement des événements

La fonction de rappel dans le traitement des événements peut être transmise en tant que paramètre à la fonction de traitement des événements, lorsque réponse à l'événement Déclenché automatiquement. Par exemple, sur un site Web PHP, vous pouvez avoir un formulaire qui déclenche un événement lors de sa soumission. Vous souhaitez écrire le code pour traiter le formulaire dans lequel le formulaire est utilisé. À ce stade, vous devez encapsuler le code de traitement dans une fonction de rappel et le transmettre en tant que paramètre à la fonction de traitement du formulaire.

  1. Traitement des données

Les fonctions de rappel peuvent également être utilisées comme paramètres de fonctions de traitement de données, telles que les fonctions de tri de tableaux et les fonctions de filtrage de données. Vous pouvez utiliser des fonctions de rappel pour personnaliser la façon dont un tableau est trié ou pour personnaliser les méthodes de filtrage des données. Par exemple, si vous souhaitez rechercher une valeur spécifique dans un tableau, mais souhaitez également conserver la situation lorsque plusieurs valeurs sont trouvées dans le tableau, vous pouvez écrire une fonction de rappel et utiliser cette fonction lors de la recherche dans le tableau pour tout ajouter. valeurs correspondantes. Retour à un nouveau tableau.

  1. Moteur de modèles

Les fonctions de rappel sont souvent utilisées dans les moteurs de modèles pour développer les instructions et les fonctions personnalisées dans les modèles. Par exemple, la syntaxe de boucle foreach est utilisée dans un modèle pour parcourir les données d'un tableau et les afficher dans le modèle. La raison pour laquelle la syntaxe foreach est prise en charge est qu'une fonction de rappel est utilisée en interne pour implémenter le parcours des données.

3. Comment définir les fonctions de rappel

Comment définir et utiliser les fonctions de rappel en PHP ? C'est en fait très simple. En PHP, les fonctions de rappel peuvent être soit des fonctions normales, soit des fonctions anonymes.

  1. Définissez une fonction normale comme fonction de rappel

Exemple de code :

<?php
function my_callback_function() {
    echo 'Hello World!';
}

call_user_func('my_callback_function');
?>
Copier après la connexion

La sortie de ce code est : Hello World !

  1. Définissez une fonction anonyme comme fonction de rappel

Exemple de code :

<?php
$my_callback = function () {
    echo 'Hello World!';
};

call_user_func($my_callback);
?>
Copier après la connexion

La sortie de ce code est : Hello World !

Un moyen encore plus simple consiste à utiliser les fonctions fléchées.

Exemple de code :

<?php
call_user_func(fn() => 'Hello World!');
?>
Copier après la connexion

Le résultat de sortie de ce code est également : Hello World !

4. Comment utiliser la fonction de rappel

Lorsque vous utilisez la fonction de rappel, vous pouvez utiliser les fonctions intégrées de PHP call_user_func() et call_user_func_array().

  1. Méthode d'utilisation call_user_func()

La fonction call_user_func() est utilisée pour appeler la fonction de rappel et transmettre les paramètres en tant que paramètres de la fonction. La syntaxe de cette fonction est la suivante :

mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )
Copier après la connexion

Remarque : Le paramètre de rappel doit ici transmettre le nom de la fonction de rappel ou de la fonction de rappel stockée dans une variable.

Exemple de code :

<?php
function my_callback_function($string) {
    echo 'Hello ' . $string . "
";
}

call_user_func('my_callback_function', 'World');
?>
Copier après la connexion

Le résultat de sortie de ce code est : Hello World
.

  1. Comment utiliser call_user_func_array()

La fonction call_user_func_array() est similaire à la fonction call_user_func(), mais elle utilise un tableau comme paramètre de la fonction de rappel. La syntaxe de cette fonction est la suivante :

mixed call_user_func_array ( callable $callback , array $param_arr )
Copier après la connexion

Remarque : Le paramètre de rappel doit ici transmettre le nom de la fonction de rappel ou de la fonction de rappel stockée dans une variable.

Exemple de code :

<?php
function product($a, $b)
{
    return $a * $b;
}

// 回调函数作为参数
echo call_user_func_array('product', array(4, 5)) . "
";
?>
Copier après la connexion

La sortie de ce code est : 20.

5. Cas d'application de la fonction de rappel

  1. Tri de tableau

Dans la fonction de tableau, la fonction de rappel peut trier le tableau selon la méthode spécifiée en spécifiant la fonction de comparaison. Par exemple, nous voulons organiser un tableau du plus petit au plus grand :

Exemple de code :

<?php
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);
usort($a, 'cmp');

print_r($a);
?>
Copier après la connexion

La fonction usort() est utilisée ici pour trier le tableau, où le premier paramètre est le tableau à trier, et le le deuxième paramètre est la fonction de rappel.

Le résultat de sortie de ce code est : Array ([0] => 1 [1] => 2 [2] => 3 [3] => 5 [4] => 6 ).

  1. Filtrage des données

Dans la fonction de filtrage des données, la fonction de rappel peut filtrer les données du tableau selon la méthode spécifiée en spécifiant la fonction de filtrage. Par exemple, nous voulons filtrer les nombres dans un tableau :

Exemple de code :

<?php
function is_number($var) {
    if (is_numeric($var)) {
        return true;
    } else {
        return false;
    }
}

$array = array(1, 'abc', 2, 'def', 3, 'ghi');
var_dump(array_filter($array, 'is_number'));
?>
Copier après la connexion

Dans le code ci-dessus, la fonction array_filter() est utilisée. Le premier paramètre de la fonction est le tableau et le deuxième paramètre est. la fonction de rappel. , indiquant que seules les données qui satisfont aux conditions de la fonction is_number() sont renvoyées.

La sortie de ce code est : array(3) { [0]=> int(1) [2]=>

  1. 模板引擎

在模板引擎中,回调函数往往用来扩充模板中的标签。例如我们现在要开发一个简单的模板引擎,实现将模板中的include标签替换为使用PHP include函数的功能:

示例代码:

<?php
function replace_include($template) {
    $template = preg_replace_callback('#{{include file=(.*?)}}#', function($match) {
        return "<?php include ".trim($match[1])."; ?>";
    }, $template);

    return $template;
}

$template = '{{include file="included.php"}}';
$template = replace_include($template);

echo $template;
?>
Copier après la connexion

在上面的代码中,使用了preg_replace_callback()函数,该函数的第一个参数为正则表达式,第二个参数回调函数。该回调函数将匹配到的值替换为PHP include函数。

该代码的输出结果为:

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8 JIT (juste à temps) Compilation: comment cela améliore les performances. PHP 8 JIT (juste à temps) Compilation: comment cela améliore les performances. Mar 25, 2025 am 10:37 AM

La compilation JIT de PHP 8 améliore les performances en compilant le code fréquemment exécuté en code machine, bénéficiant aux applications avec des calculs lourds et en réduisant les temps d'exécution.

OWASP Top 10 PHP: Décrivez et atténue les vulnérabilités communes. OWASP Top 10 PHP: Décrivez et atténue les vulnérabilités communes. Mar 26, 2025 pm 04:13 PM

L'article traite des 10 meilleures vulnérabilités de l'OWASP dans les stratégies PHP et d'atténuation. Les problèmes clés incluent l'injection, l'authentification brisée et les XS, avec des outils recommandés pour surveiller et sécuriser les applications PHP.

Téléchargements de fichiers sécurisés PHP: prévention des vulnérabilités liées au fichier. Téléchargements de fichiers sécurisés PHP: prévention des vulnérabilités liées au fichier. Mar 26, 2025 pm 04:18 PM

L'article traite de la sécurisation des téléchargements de fichiers PHP pour éviter les vulnérabilités comme l'injection de code. Il se concentre sur la validation du type de fichier, le stockage sécurisé et la gestion des erreurs pour améliorer la sécurité de l'application.

Encryption PHP: cryptage symétrique vs asymétrique. Encryption PHP: cryptage symétrique vs asymétrique. Mar 25, 2025 pm 03:12 PM

L'article traite du cryptage symétrique et asymétrique en PHP, en comparant leur aptitude, leurs performances et leurs différences de sécurité. Le chiffrement symétrique est plus rapide et adapté aux données en vrac, tandis que l'asymétrique est utilisé pour l'échange de clés sécurisé.

Authentification PHP & amp; Autorisation: mise en œuvre sécurisée. Authentification PHP & amp; Autorisation: mise en œuvre sécurisée. Mar 25, 2025 pm 03:06 PM

L'article examine la mise en œuvre d'authentification et d'autorisation robustes dans PHP pour empêcher un accès non autorisé, détaillant les meilleures pratiques et recommandant des outils d'amélioration de la sécurité.

Comment récupérer les données d'une base de données à l'aide de PHP? Comment récupérer les données d'une base de données à l'aide de PHP? Mar 20, 2025 pm 04:57 PM

L'article discute de la récupération des données des bases de données à l'aide de PHP, couvrant les étapes, les mesures de sécurité, les techniques d'optimisation et les erreurs communes avec des solutions. COMMANDE CHAPITRE: 159

Protection PHP CSRF: comment empêcher les attaques du CSRF. Protection PHP CSRF: comment empêcher les attaques du CSRF. Mar 25, 2025 pm 03:05 PM

L'article traite des stratégies pour prévenir les attaques du CSRF dans PHP, notamment en utilisant des jetons CSRF, des cookies de même site et une bonne gestion de session.

Quel est le but de mysqli_query () et mysqli_fetch_assoc ()? Quel est le but de mysqli_query () et mysqli_fetch_assoc ()? Mar 20, 2025 pm 04:55 PM

L'article traite des fonctions MySQLI_Query () et MySQLI_Fetch_assoc () en PHP pour les interactions de la base de données MySQL. Il explique leurs rôles, leurs différences et fournit un exemple pratique de leur utilisation. L'argument principal se concentre sur les avantages de l'USIN

See all articles