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
usekulcsszó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 (
usenem 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.