Fonctions de rappel
Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 4 sur 68.
Une fonction de rappel (callback) est une fonction qui est passée en tant qu'argument à une autre fonction. Au lieu d'appeler la fonction immédiatement, vous passez son nom afin que la fonction réceptrice puisse l'appeler plus tard, au besoin.
Pour passer une fonction en tant que rappel (callback), vous utilisez simplement le nom de la fonction sous forme de chaîne de caractères :
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// Effectuer un traitement...
$callback($username); // Appeler la fonction de rappel
}
processUser("Alice", "greet"); // Affiche : Hello, Alice!
?>Dans cet exemple, "greet" est passé en tant que callback à processUser(). La fonction processUser() appelle ensuite le callback en utilisant la chaîne de caractères comme nom de fonction.
Les fonctions de rappel (callbacks) sont incroyablement utiles car elles rendent vos fonctions plus flexibles. La même fonction peut effectuer différentes actions selon la fonction de rappel que vous lui passez. Ce concept est fondamental pour de nombreuses fonctions intégrées de PHP comme array_map() et array_filter(), que vous rencontrerez plus tard dans ce cours.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Défi
FacileCréez deux fonctions : une nommée formatUppercase qui prend une chaîne de caractères et la retourne en majuscules, et une autre nommée formatLowercase qui prend une chaîne de caractères et la retourne en minuscules.
Ensuite, créez une fonction nommée applyFormat qui accepte deux paramètres : une chaîne de texte et un nom de fonction de rappel (callback). Cette fonction doit appliquer le callback au texte et retourner le résultat.
Vous recevrez deux entrées : le type d'opération ("upper" ou "lower") et le texte à formater. Lisez les deux entrées, déterminez quel callback utiliser en fonction du type d'opération, appelez applyFormat avec le callback approprié, et affichez le résultat formaté.
Format d'entrée : Deux lignes - la première ligne contient le type d'opération ("upper" ou "lower"), la deuxième ligne contient le texte à formater
Sortie attendue : Le texte formaté selon le type d'opération
Aide-mémoire
Une fonction de rappel (callback) est une fonction qui est passée en tant qu'argument à une autre fonction. Au lieu d'appeler la fonction immédiatement, vous passez son nom afin que la fonction réceptrice puisse l'appeler plus tard si nécessaire.
Pour passer une fonction en tant que rappel, utilisez le nom de la fonction sous forme de chaîne de caractères :
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
function processUser($username, $callback) {
// Effectuer un traitement...
$callback($username); // Appeler la fonction de rappel
}
processUser("Alice", "greet"); // Affiche : Hello, Alice!
?>Les rappels rendent les fonctions plus flexibles en permettant différentes actions selon le rappel que vous leur passez.
Essayez vous-même
<?php
// Lire l'entrée
$operation = trim(fgets(STDIN));
$text = trim(fgets(STDIN));
// TODO: Écrivez votre code ci-dessous
// Créer la fonction formatUppercase
// Créer la fonction formatLowercase
// Créer la fonction applyFormat
// Déterminer quel rappel utiliser en fonction du type d'opération
// Appeler applyFormat avec le rappel approprié
// Afficher le résultat
echo $result;
?>Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Fonctions avancées
Fonctions anonymesClosures et 'use'Fonctions fléchéesFonctions de rappelUtilisation de 'call_user_func'Fonctions variablesPassage par référenceFonctions récursivesRécapitulatif : Mélange de fonctions4Tableaux multidimensionnels
Créer un tableau 2DAccéder aux éléments d'un tableau 2DModifier les éléments d'un tableau 2DItérer avec des boucles imbriquéesTableaux associatifs 2DRécapitulatif : Exercice de grille simple2Manipulations avancées de tableaux
Ajouter avec 'array_push'Supprimer avec 'array_pop'Ajouter avec 'array_unshift'Supprimer avec 'array_shift'Fusionner des tableaux indexésFusionner des tableaux associatifsExtraire avec 'array_slice'Valeurs avec 'in_array'Clés avec 'array_search'Récapitulatif : Exercice Playlist3Tri des tableaux
Trier les tableaux indexés par ordre croissantTrier les tableaux indexés par ordre décroissantTrier les tableaux associatifs par valeurTrier les tableaux associatifs par cléTri par ordre naturelTri personnalisé avec 'usort'Récapitulatif : Tri d'un classement