Ja­vaS­cript est l’un des langages les plus utilisés pour la création de pages Web. On se sert des capacités de ce langage de script pour concevoir des pages de manière in­te­rac­tive et pour pouvoir réagir aux entrées. On se sert pour cela de variables, d’objets et de fonctions, qui peuvent tous accéder les uns aux autres et donnent toujours les mêmes résultats, même avec des na­vi­ga­teurs dif­fé­rents. Derrière la plupart des boutons ou l’affichage d’un contenu à un moment donné se trouve une fonction dite « callback function » (ou fonction de rappel).

Les fonctions de ce type ne sont cependant pas un atout exclusif de Ja­vaS­cript. D’autres langages de pro­gram­ma­tion bien connus tels que C, Java, PHP ou Python s’appuient également sur les callbacks pour trans­mettre de manière simple certains pa­ra­mètres de l’uti­li­sa­teur.

Nom de domaine
Votre domaine en un clic
  • 1 cer­ti­fi­cat SSL Wildcard par contrat
  • Fonction incluse Domain Connect pour une con­fi­gu­ra­tion DNS sim­pli­fiée

Qu’est-ce qu’un callback ?

Les fonctions se servent toujours de pa­ra­mètres auxquels elles ont accès. On parle de fonction de rappel quand on passe une fonction en paramètre d’une autre fonction. Ces callback functions sont très souvent utilisées dans des bi­blio­thèques et des fra­me­works tels que les ap­pli­ca­tions Ja­vaS­cript jQuery, Angular ou node.js. Elles sont utiles pour rendre les fonctions ex­ten­sibles, pour qu’elles puissent par la suite être appelées sur certains évé­ne­ments ou cir­cons­tances.

Comment fonc­tionne un callback ?

Une fonction de rappel a toujours un certain effet, qui est associé à certaines cir­cons­tances. Par con­sé­quent, les callback functions ne sont appelées que si une action clai­re­ment définie a été en­tre­prise. Un bon exemple de fonction de rappel est les ges­tion­naires d’évé­ne­ments, qui sont utilisés dans les éléments HTML tels que les boutons, par exemple. Dans ce cas, un événement peut être un clic de souris, qui provoque l’exécution de la fonction de rappel. C’est le callback lui-même qui se chargera d’une éven­tuelle re­di­rec­tion vers une autre page. Un autre scénario possible est le passage d’une valeur dans un for­mu­laire que l’on remplit.

La prin­ci­pale dif­fé­rence entre une fonction normale et une fonction de rappel peut donc être résumée comme suit : alors qu’une fonction normale est appelée di­rec­te­ment, la fonction de rappel est sim­ple­ment définie au départ et n’est appelée et exécutée que lorsqu’un certain événement se produit. Comme déjà mentionné, les callback functions sont employées dans dif­fé­rents langages de pro­gram­ma­tion. Bien que la syntaxe et la structure des méthodes diffèrent, le principe du callback reste le même dans tous les langages.

Fonctions callback en Ja­vaS­cript

Les fonctions de rappel sont largement utilisées en pro­gram­ma­tion Ja­vaS­cript. Il peut s’agir d’une fonction qui est appelée lorsqu’on clique sur un bouton, ou d’un contenu qui est temporisé avec une fonction set­Ti­meout().

Un exemple simple de callback en Ja­vaS­cript est un simple bouton :

document.getElementById("Button1").addEventListener("click", function() {
console.log("Clic Bouton");
}, false);

Dans cet exemple, un Event­Lis­te­ner a été utilisé comme callback, qui est déclenché par un certain événement dans le cas présent, le clic sur le bouton ayant l’ID "Button1". Dès que le bouton est cliqué et que les con­di­tions pour la callback function sont remplies, la fonction est exécutée et le message "Clic Bouton" est affiché sur la console. Pour assurer la com­pa­ti­bi­lité des­cen­dante avec les anciens na­vi­ga­teurs, le paramètre "false" a également été utilisé dans l’exemple donné.

Fonctions callback en PHP

En PHP, les callback functions sont appelées de la même manière qu’en Ja­vaS­cript. Cependant, dans ce langage de script, les fonctions de rappel peuvent également être des méthodes d’un objet disposant de méthodes de classe statiques.

Voici un exemple classique de fonction callback en PHP :

function my_callback_function() {
	echo Bonjour le monde !’;
}

L’appel de cette fonction produit la chaîne de ca­rac­tères "Bonjour le monde !". Pour appeler le callback en tant que méthode, procédez comme suit :

class MyClass {
	static function myCallbackMethod() {
		echo ‘Bonjour le monde !’;
	}
}

En PHP, les callbacks sont un moyen répandu pour permettre aux fonctions de com­mu­ni­quer entre elles. Ils sont souvent utilisés pour mettre en œuvre pro­pre­ment des plug-ins ou des modules et pour assurer leur bon fonc­tion­ne­ment.

Fonctions callback en Python

En raison de sa syntaxe simple, Python est l’un des langages de pro­gram­ma­tion les plus po­pu­laires. Grâce à son uti­li­sa­tion po­ly­va­lente tant au niveau logiciel que matériel, ce langage constitue un bon premier pas si vous souhaitez apprendre la pro­gram­ma­tion. C’est un langage par­ti­cu­liè­re­ment apprécié et recherché dans les domaines des sciences des données et de l’ap­pren­tis­sage machine (machine learning), pour lesquels il offre de nombreux avantages par rapport à d’autres langages.

En Python, les callbacks sont surtout utilisés pour assigner dif­fé­rents évé­ne­ments aux éléments de l’interface uti­li­sa­teur. Dans l’exemple suivant, deux fonctions sont définies, le callback "get_square" et l’appel "caller". Le callback est ensuite appelé :

>>> def get_square(val):
		return val ** 2
>>> def caller(func, val):
		return func(val)
>>> caller(get_square, 5)

La syntaxe de la fonction de rappel est très simple, semblable à celle de Ja­vaS­cript et de PHP.

Fonctions callback en Java

En Java, il est assez in­ha­bi­tuel d’exécuter une callback function, mais il est possible de le faire, en ayant recours à la capacité de réflexion, par exemple. Celle-ci permet de re­pré­sen­ter des méthodes et des fonctions sous forme d’objets. La réflexion est donc plus une fonction de bi­blio­thèque qu’un callback.

Le principe SAX fonc­tionne également avec Java, de manière similaire à la callback function. Dans ce cas, un fichier XML est lu par l’analyseur SAX et une méthode de callback spé­ci­fique est appelée en fonction de l’événement entrant cela inclut les méthodes start­Do­cu­ment() et star­tE­le­ment().

Fonctions callback en C

Dans le langage de pro­gram­ma­tion C, on peut intégrer les fonctions de rappel de manière similaire à Ja­vaS­cript. Ce langage est souvent utilisé pour la pro­gram­ma­tion système et le dé­ve­lop­pe­ment d’ap­pli­ca­tions. C’est un outil fon­da­men­tal pour la pro­gram­ma­tion de noyaux de systèmes ou de systèmes d’ex­ploi­ta­tion. De nombreux langages de pro­gram­ma­tion tels que Ja­vaS­cript, PHP, C++, Java ou même C# sont fortement inspirés de la syntaxe et des pro­prié­tés de C. Par con­sé­quent, il y a aussi beaucoup de re­cou­pe­ments dans la syntaxe et les méthodes des dif­fé­rentes langues.

Voici un exemple de callback function en C :

void A()
{
	printf("Je suis une fonction A\n");
}
// La fonction callback
void B(void (*ptr)())
{
	(*ptr) (); // Appel du callback à A
}
int main()
{
	void (*ptr)() = &A;
	// Appel de la fonction B
	// La fonction A est passée en argument
	B(ptr);
	return 0;
}

Le résultat de ce code est donc : "Je suis une fonction A". Comme en Ja­vaS­cript, une fonction de rappel est appelée chaque fois qu’un certain événement se produit. En C, ces fonctions sont utilisées pour créer diverses nouvelles bi­blio­thèques pour des travaux de pro­gram­ma­tion ul­té­rieurs, et pour émettre les signaux du noyau qui sont né­ces­saires à la gestion des évé­ne­ments asyn­chrones.

Hé­ber­ge­ment pour Managed WordPress
Créez votre site avec l'IA, nous gérons le reste
  • Fonctions d'IA faciles à utiliser, quel que soit votre niveau de com­pé­tence
  • Nombreux thèmes et plugins pour une per­son­na­li­sa­tion complète
  • Mise à jour sans efforts et moins d'ad­mi­nis­tra­tion
Aller au menu principal