Menu
Coddy logo textTech

Utilisation de 'call_user_func'

Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 5 sur 68.

La fonction call_user_func() offre un moyen puissant d'appeler des fonctions de manière dynamique en PHP. Au lieu d'appeler une fonction directement par son nom, vous pouvez stocker le nom de la fonction dans une variable de type chaîne et utiliser call_user_func() pour l'exécuter.

Voici la syntaxe de base :

<?php
function greet() {
    echo "Hello World!";
}

$functionName = "greet";
call_user_func($functionName);  // Affiche : Hello World!
?>

Cela devient particulièrement utile lorsque vous devez appeler différentes fonctions en fonction des entrées de l'utilisateur ou de conditions. Vous pouvez également passer des arguments à la fonction en les incluant comme paramètres supplémentaires :

<?php
function add($a, $b) {
    return $a + $b;
}

$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result;  // Affiche : 8
?>

Cet appel de fonction dynamique est particulièrement utile lors de la création d'applications flexibles où la fonction spécifique à exécuter est déterminée au moment de l'exécution, comme pour les calculatrices, les processeurs de commandes ou les systèmes de routage.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

challenge icon

Défi

Facile

Créez trois fonctions : multiply qui prend deux nombres et retourne leur produit, subtract qui prend deux nombres et retourne leur différence, et divide qui prend deux nombres et retourne leur quotient.

Vous recevrez trois entrées : le nom de l'opération ("multiply", "subtract", ou "divide"), et deux nombres. Lisez les trois entrées, utilisez call_user_func() pour exécuter la fonction appropriée avec les deux nombres, et affichez le résultat.

Format d'entrée : Trois lignes - la première ligne contient le nom de l'opération, la deuxième ligne contient le premier nombre, la troisième ligne contient le deuxième nombre

Sortie attendue : Le résultat de l'opération

Aide-mémoire

La fonction call_user_func() vous permet d'appeler des fonctions de manière dynamique en utilisant une variable de type chaîne contenant le nom de la fonction :

<?php
function greet() {
    echo "Hello World!";
}

$functionName = "greet";
call_user_func($functionName);  // Affiche : Hello World!
?>

Vous pouvez passer des arguments à la fonction en les incluant comme paramètres supplémentaires :

<?php
function add($a, $b) {
    return $a + $b;
}

$operation = "add";
$result = call_user_func($operation, 5, 3);
echo $result;  // Affiche : 8
?>

Essayez vous-même

<?php
// Lire l'entrée
$operation = trim(fgets(STDIN));
$num1 = floatval(fgets(STDIN));
$num2 = floatval(fgets(STDIN));

// TODO: Créer les trois fonctions (multiplier, soustraire, diviser) ici

// TODO: Utiliser call_user_func() pour exécuter la fonction appropriée

// Afficher le résultat
echo $result;
?>
quiz iconTestez-vous

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