Fonctions variables
Fait partie de la section Logique & Flux du Journey PHP de Coddy. Leçon 6 sur 68.
Les fonctions variables offrent une autre façon d’appeler des fonctions dynamiquement 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 le nom d’une 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 les fonctions qui acceptent des paramètres. Il suffit de transmettre les arguments entre les parenthèses :
<?php
function greet($name) {
echo "Hello, " . $name . "!";
}
$func = "greet";
$func("Alice"); // Affiche : Hello, Alice!
?>Les fonctions variables offrent une manière claire et intuitive d’exécuter du code dynamiquement. Cette fonctionnalité est particulièrement utile lorsque vous devez appeler différentes fonctions en fonction de conditions ou de la saisie de l’utilisateur, ce qui rend votre code plus flexible et adaptable.
Défi
FacileCrée trois fonctions : calculateArea, qui prend deux nombres (la longueur et la largeur) et renvoie leur produit, calculatePerimeter, qui prend deux nombres et renvoie le double de leur somme, et calculateDiagonal, qui prend deux nombres et renvoie la racine carrée de la somme de leurs carrés.
Tu recevras trois entrées : le nom de l’opération ("area", "perimeter" ou "diagonal"), la longueur et la largeur. Lis les trois entrées, stocke le nom de la fonction dans une variable, appelle cette fonction en utilisant la syntaxe d’appel d’une fonction via une variable avec les deux mesures, puis affiche 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), et la troisième ligne contient la largeur (un nombre qui peut contenir des décimales).
Sortie attendue : 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;
?>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
1Fonctions avancées
Fonctions anonymesClosures et 'use'Fonctions fléchéesFonctions de rappelUtilisation de 'call_user_func'Fonctions variablesPassage par référenceFonctions récursivesRécapitulatif : Mélange de fonctions4Tableaux multidimensionnels
Créer un tableau 2DAccéder aux éléments d'un tableau 2DModifier les éléments d'un tableau 2DItérer avec des boucles imbriquéesTableaux associatifs 2DRécapitulatif : Exercice de grille simple2Manipulations avancées de tableaux
Ajouter avec 'array_push'Supprimer avec 'array_pop'Ajouter avec 'array_unshift'Supprimer avec 'array_shift'Fusionner des tableaux indexésFusionner des tableaux associatifsExtraire avec 'array_slice'Valeurs avec 'in_array'Clés avec 'array_search'Récapitulatif : Exercice Playlist3Tri des tableaux
Trier les tableaux indexés par ordre croissantTrier les tableaux indexés par ordre décroissantTrier les tableaux associatifs par valeurTrier les tableaux associatifs par cléTri par ordre naturelTri personnalisé avec 'usort'Récapitulatif : Tri d'un classementEntraînez-vous par vous-même : Compilateur PHP en ligne