Sobes.tech
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 use pentru 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.