Sobes.tech
Junior

Cosa sono le funzioni freccia e anonime in PHP?

sobes.tech AI

Risposta dell'AI

Le funzioni freccia sono zucchero sintattico per le funzioni anonime, introdotte in PHP 7.4. Offrono un modo più conciso per scrivere funzioni lambda semplici.

  • Funzioni anonime (chiusure):

    • Possono includere più di una riga di codice e contenere logica complessa.
    • Usano la parola chiave use per importare variabili dall'ambito superiore.
    • Sono più flessibili e adatte a compiti complessi.
  • Funzioni freccia:

    • Contengono solo un'espressione, il cui risultato viene restituito implicitamente.
    • Hanno accesso automatico alle variabili dell'ambito superiore (non richiedono use).
    • Sono destinate a operazioni semplici e su una sola riga.

Ecco alcuni esempi:

<?php
// Funzione anonima
$greet = function ($name) {
    return "Ciao, " . $name;
};
echo $greet('Mondo') . "\n";

// Funzione anonima con use
$message = 'Salve';
$greetWithMsg = function ($name) use ($message) {
    return $message . ", " . $name;
};
echo $greetWithMsg('Amico') . "\n";
<?php
// Funzione freccia
$greetArrow = fn ($name) => "Ciao, " . $name;
echo $greetArrow('Mondo') . "\n";

// Funzione freccia con accesso automatico all'ambito superiore
$messageArrow = 'Salve';
$greetArrowWithMsg = fn ($name) => $messageArrow . ", " . $name;
echo $greetArrowWithMsg('Amico') . "\n";

Differenze nelle restrizioni:

Possibilità Funzione anonima Funzione freccia
Codice multilinea No
Parola chiave return Sì (obbligatorio) No (implicitamente)
Parola chiave use Sì (per importare) No (automatico)
Logica complessa No

La scelta tra queste dipende dalla complessità del compito e dalle preferenze di sintassi. Per azioni semplici, è più comodo usare le funzioni freccia per la loro brevità.