⊗ppSpFnCb 11 of 83 menu

Fonctions de rappel en PHP

Une fonction de rappel est une fonction qui est passée en paramètre à une autre fonction.

Regardons un exemple. Supposons que nous ayons une fonction qui prend un nombre en premier paramètre, et une fonction de rappel en deuxième paramètre :

<?php function func($num, $calb) { } ?>

Faisons en sorte qu'à l'intérieur de la fonction notre fonction de rappel soit appelée pour le nombre transmis :

<?php function func($num, $calb) { echo $calb($num); } ?>

Voyons maintenant quelles sont les options pour passer une fonction de rappel à notre fonction.

Option 1

Notre fonction de rappel peut être une fonction ordinaire :

<?php function calb($num) { return $num ** 2; } ?>

Dans ce cas, en tant que fonction de rappel nous transmettrons le nom de notre fonction :

<?php func(3, 'calb'); ?>

À l'intérieur de la fonction func notre fonction de rappel sera appelée par son nom.

Option 2

Notre fonction de rappel peut être une fonction anonyme, enregistrée dans une variable :

<?php $calb = function($num) { return $num ** 2; }; ?>

Dans ce cas, nous passons en paramètre la variable contenant notre fonction :

<?php func(3, $calb); ?>

Option 3

On peut passer la fonction anonyme directement en paramètre :

<?php func(3, function($num) { return $num ** 2; }); ?>

Option 4

On peut raccourcir le code en utilisant une fonction fléchée :

<?php func(3, fn($num) => $num ** 2); ?>

Problèmes pratiques

Une fonction est donnée, prenant en paramètre un tableau et une fonction de rappel, qui sera appliquée à chaque élément du tableau :

<?php function func($arr, $calb) { $res = []; foreach ($arr as $elem) { $res[] = $calb($elem); } return $res; } ?>

Appelez cette fonction, en passant en paramètre un tableau de nombres et une fonction de rappel élevant le nombre transmis au carré.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser