Sobes.tech
Middle

Cos'è una closure in PHP?

sobes.tech AI

Risposta dell'AI

Oggetto-funzione con la capacità di catturare variabili dall'ambito del suo creatore, anche dopo che quest'ultimo ha terminato l'esecuzione.

<?php
// Chiusura che cattura $factor
$multiplyBy = function ($factor) {
    return function ($number) use ($factor) {
        return $number * $factor;
    };
};

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

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

Caratteristiche principali:

  • Sono istanze della classe Closure.
  • Possono ereditare variabili dall'ambito superiore usando la parola chiave use.
  • Le variabili ereditate vengono ereditate per valore, a meno che non venga specificato esplicitamente l'ereditarietà per riferimento (use (&$variable)).
  • Sono comunemente usate per creare funzioni anonime che "ricordano" il contesto in cui sono state create.