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
useper 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 | Sì | No |
Parola chiave return |
Sì (obbligatorio) | No (implicitamente) |
Parola chiave use |
Sì (per importare) | No (automatico) |
| Logica complessa | Sì | 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à.