Sobes.tech
Middle

Qu'est-ce qu'une fermeture en PHP?

sobes.tech IA

Réponse de l'IA

Fonction-objet avec la capacité de capturer des variables de la portée parent, même après que cette dernière ait terminé son exécution.

<?php
// Closure capturant $factor
$multiplyBy = function ($factor) {
    return function ($number) use ($factor) {
        return $number * $factor;
    };
};

$double = $multiplyBy(2);
$triple = $multiplyBy(3);

echo $double(10); // Affiche : 20
echo $triple(10); // Affiche : 30

Caractéristiques principales:

  • Sont des instances de la classe Closure.
  • Peuvent hériter de variables de la portée parent via le mot-clé use.
  • Les variables héritées sont héritées par valeur, sauf indication contraire pour l'héritage par référence (use (&$variable)).
  • Souvent utilisées pour créer des fonctions anonymes qui "se souviennent" du contexte de leur création.