PHP Fonctions de rappel
Fonctions de rappel
Une fonction de rappel (souvent appelée simplement "callback") est une fonction qui est passée en tant qu'argument à une autre fonction.
Toute fonction existante peut être utilisée comme fonction de rappel. Pour utiliser une fonction comme fonction de rappel, passez une chaîne contenant le nom de la fonction en tant qu'argument d'une autre fonction :
Exemple
Passez une fonction de rappel à la fonction array_map() de PHP pour calculer la longueur de chaque chaîne dans un tableau :
<?php
function my_callback($item) {
return strlen($item);
}
$strings = ["apple", "orange", "banana", "coconut"];
$lengths = array_map("my_callback", $strings);
print_r($lengths);
?> À partir de la version 7, PHP peut passer des fonctions anonymes comme fonctions de rappel :
Exemple
Utilisez une fonction anonyme comme fonction de rappel pour la fonction array_map() de PHP :
<?php
$strings = ["apple", "orange", "banana", "coconut"];
$lengths = array_map( function($item) { return strlen($item); } , $strings);
print_r($lengths);
?> Rappels dans les fonctions définies par l'utilisateur
Les fonctions et méthodes définies par l'utilisateur peuvent également accepter des fonctions de rappel comme arguments. Pour utiliser des fonctions de rappel à l'intérieur d'une fonction ou méthode définie par l'utilisateur, appelez-la en ajoutant des parenthèses à la variable et passez des arguments comme avec des fonctions normales :
Exemple
Exécutez une fonction de rappel à partir d'une fonction définie par l'utilisateur :
<?php
function exclaim($str) {
return $str . "! ";
}
function ask($str) {
return $str . "? ";
}
function printFormatted($str, $format) {
// Appel de la fonction de rappel $format
echo $format($str);
}
// Passez "exclaim" et "ask" comme fonctions de rappel à printFormatted()
printFormatted("Hello world", "exclaim");
printFormatted("Hello world", "ask");
?>