Fonctions fléchées
Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 3 sur 68.
Les fonctions fléchées, introduites dans PHP 7.4, offrent une manière plus concise d'écrire des fonctions anonymes simples. Elles utilisent le mot-clé fn au lieu de la syntaxe complète function, rendant votre code plus court et plus propre.
Voici comment créer une fonction fléchée :
<?php
$greeting = fn($name) => "Hello, " . $name . "!";
echo $greeting("Alice"); // Affiche : Hello, Alice!
?>Remarquez les différences clés : les fonctions fléchées utilisent fn au lieu de function, ont une flèche => pointant vers l'expression, et n'ont pas besoin d'accolades ou d'une instruction return pour les expressions simples.
Le plus grand avantage des fonctions fléchées est qu'elles capturent automatiquement les variables de la portée parente - aucun mot-clé use n'est nécessaire :
<?php
$message = "Welcome";
$greeting = fn($name) => $message . ", " . $name . "!";
echo $greeting("Bob"); // Affiche : Welcome, Bob!
?>Les fonctions fléchées sont parfaites pour les opérations courtes et simples où la syntaxe traditionnelle des fonctions anonymes semble trop verbeuse.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Défi
FacileCréez une fonction fléchée qui prend un nom de produit en paramètre et retourne une étiquette de produit formatée. La fonction fléchée doit capturer un nom de catégorie à partir de la portée environnante.
Vous recevrez deux entrées : le nom de la catégorie et le nom du produit. Lisez les deux entrées, créez une fonction fléchée qui capture la catégorie et formate l'étiquette du produit comme "[Category] Product", appelez la fonction fléchée avec le nom du produit, et affichez le résultat.
Format d'entrée : Deux lignes - la première ligne contient le nom de la catégorie, la deuxième ligne contient le nom du produit
Sortie attendue : L'étiquette du produit formatée au format "[Category] Product"
Aide-mémoire
Les fonctions fléchées utilisent le mot-clé fn et fournissent une syntaxe concise pour les fonctions anonymes simples :
$greeting = fn($name) => "Hello, " . $name . "!";Caractéristiques principales :
- Utilisent
fnau lieu defunction - La flèche
=>pointe vers l'expression - Pas besoin d'accolades ou de l'instruction
returnpour les expressions simples - Capturent automatiquement les variables de la portée parente sans le mot-clé
use
$message = "Welcome";
$greeting = fn($name) => $message . ", " . $name . "!";
echo $greeting("Bob"); // Affiche : Welcome, Bob!Essayez vous-même
<?php
// Lire l'entrée
$category = trim(fgets(STDIN));
$product = trim(fgets(STDIN));
// TODO: Écrivez votre code ci-dessous
// Créer une fonction fléchée qui capture la catégorie et formate l'étiquette du produit
// Appeler la fonction fléchée et 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 classement