Menu
Coddy logo textTech

Fonctions variables

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

Les fonctions variables offrent un autre moyen d'appeler des fonctions de manière dynamique en PHP. Au lieu d'utiliser call_user_func(), vous pouvez appeler directement une fonction en traitant une variable contenant le nom de la fonction comme s'il s'agissait de la fonction elle-même.

La syntaxe est simple : si vous avez une variable contenant un nom de fonction, vous pouvez appeler cette fonction en ajoutant des parenthèses à la variable :

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

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

Cela fonctionne également avec des fonctions qui acceptent des paramètres. Il vous suffit de passer les arguments à l'intérieur des parenthèses :

<?php
function greet($name) {
    echo "Hello, " . $name . "!";
}

$func = "greet";
$func("Alice");  // Affiche : Hello, Alice!
?>

Les fonctions variables offrent un moyen propre et intuitif d'exécuter du code de manière dynamique. Cette fonctionnalité est particulièrement utile lorsque vous devez appeler différentes fonctions en fonction de conditions ou de la saisie de l'utilisateur, rendant votre code plus flexible et adaptable.

challenge icon

Défi

Facile

Créez trois fonctions : calculateArea qui prend deux nombres (la longueur et la largeur) et retourne leur produit, calculatePerimeter qui prend deux nombres et retourne deux fois leur somme, et calculateDiagonal qui prend deux nombres et retourne la racine carrée de la somme de leurs carrés.

Vous recevrez trois entrées : le nom de l'opération ("area", "perimeter", ou "diagonal"), la longueur et la largeur. Lisez les trois entrées, stockez le nom de la fonction dans une variable, appelez cette fonction en utilisant la syntaxe des fonctions variables avec les deux mesures, 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 la longueur (un nombre qui peut contenir des décimales), la troisième ligne contient la largeur (un nombre qui peut contenir des décimales)

Résultat attendu : Le résultat du calcul

Essayez vous-même

<?php
// Lire les entrées
$operation = trim(fgets(STDIN));
$length = floatval(fgets(STDIN));
$width = floatval(fgets(STDIN));

// TODO: Créer les trois fonctions ici (calculateArea, calculatePerimeter, calculateDiagonal)

// TODO: Appeler la fonction appropriée en utilisant la syntaxe de fonction variable et stocker le résultat

// 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