Fonctions de rappel PHP
Fonctions de rappel
Une fonction de rappel (souvent appelée simplement « rappel ») est une fonction qui est transmise 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 comme argument d'une autre fonction :
Exemple
Passez un rappel à la array_map()
fonction 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);
?>
Depuis la version 7, PHP peut passer des fonctions anonymes comme fonctions de rappel :
Exemple
Utilisez une fonction anonyme comme rappel pour la array_map()
fonction 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 prendre des fonctions de rappel comme arguments. Pour utiliser des fonctions de rappel à l'intérieur d'une fonction ou d'une méthode définie par l'utilisateur, appelez-la en ajoutant des parenthèses à la variable et passez des arguments comme avec les fonctions normales :
Exemple
Exécutez un 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) {
// Calling the $format callback
function
echo $format($str);
}
// Pass "exclaim" and "ask" as callback
functions to printFormatted()
printFormatted("Hello world", "exclaim");
printFormatted("Hello world", "ask");
?>