Sobes.tech
Junior

Mi az az arrow és anonim függvény PHP-ben?

sobes.tech MI

Válasz az MI-től

A nyílfüggvények szintaktikus cukorkák az anonim függvényekhez, amelyeket a PHP 7.4-ben vezettek be. Rövidebb módot kínálnak egyszerű lambda függvények írására.

  • Anonim függvények (lezárások):

    • Több sor kódot is tartalmazhatnak, és összetett logikát is magukban foglalhatnak.
    • A use kulcsszót használják a szülő környezetből származó változók importálására.
    • Rugalmasabbak, és összetettebb feladatokra alkalmasak.
  • Nyílfüggvények:

    • Csak egy kifejezést tartalmaznak, amelyet implicit módon visszaadnak.
    • Automatikusan hozzáférnek a szülő környezet változóihoz (use nem szükséges).
    • Egyszerű, egy soros műveletekre szánták.

Íme néhány példa:

<?php
// Anonim függvény
$greet = function ($name) {
    return "Szia, " . $name;
};
echo $greet('Világ') . "\n";

// `use`-szel ellátott anonim függvény
$message = 'Üdvözlet';
$greetWithMsg = function ($name) use ($message) {
    return $message . ", " . $name;
};
echo $greetWithMsg('Barát') . "\n";
<?php
// Nyílfüggvény
$greetArrow = fn ($name) => "Szia, " . $name;
echo $greetArrow('Világ') . "\n";

// Nyílfüggvény automatikus hozzáféréssel a szülő környezethez
$messageArrow = 'Üdvözlet';
$greetArrowWithMsg = fn ($name) => $messageArrow . ", " . $name;
echo $greetArrowWithMsg('Barát') . "\n";

Korlátozások közötti különbségek:

Lehetőség Anonim függvény Nyílfüggvény
Többsoros kód Igen Nem
return kulcsszó Igen (kötelező) Nem (implicit)
use kulcsszó Igen (importhoz) Nem (automatikus)
Összetett logika Igen Nem

A választás a feladat összetettségétől és a szintaxis preferenciáktól függ. Egyszerű műveletekhez a nyílfüggvények használata kényelmesebb a rövidségük miatt.