Junior
Ce sunt funcțiile săgeată și funcțiile anonime în PHP?
sobes.tech AI
Răspuns de la AI
Funcțiile săgeată sunt un zahăr sintactic pentru funcțiile anonime, introduse în PHP 7.4. Ele oferă o modalitate mai concisă de a scrie funcții lambda simple.
-
Funcții anonime (închideri):
- Pot include mai multe linii de cod și conțin logică complexă.
- Utilizează cuvântul cheie
usepentru a importa variabile din domeniul superior. - Sunt mai flexibile și potrivite pentru sarcini complexe.
-
Funcții săgeată:
- Conțin doar o expresie, al cărei rezultat este returnat implicit.
- Au acces automat la variabilele din domeniul superior (nu necesită
use). - Sunt destinate operațiunilor simple și pe o singură linie.
Iată exemple:
<?php
// Funcție anonimă
$greet = function ($name) {
return "Salut, " . $name;
};
echo $greet('Lume') . "\n";
// Funcție anonimă cu use
$message = 'Salutări';
$greetWithMsg = function ($name) use ($message) {
return $message . ", " . $name;
};
echo $greetWithMsg('Prieten') . "\n";
<?php
// Funcție săgeată
$greetArrow = fn ($name) => "Salut, " . $name;
echo $greetArrow('Lume') . "\n";
// Funcție săgeată cu acces automat la domeniul superior
$messageArrow = 'Salutări';
$greetArrowWithMsg = fn ($name) => $messageArrow . ", " . $name;
echo $greetArrowWithMsg('Prieten') . "\n";
Diferențe în restricții:
| Posibilitate | Funcție anonimă | Funcție săgeată |
|---|---|---|
| Cod multi-linie | Da | Nu |
Cuvântul cheie return |
Da (obligatoriu) | Nu (implicit) |
Cuvântul cheie use |
Da (pentru import) | Nu (automat) |
| Logică complexă | Da | Nu |
Alegerea între ele depinde de complexitatea sarcinii și preferințele în sintaxă. Pentru operațiuni simple, utilizarea funcțiilor săgeată este mai convenabilă datorită conciziei lor.