Junior
Čo sú šípové a anonymné funkcie v PHP?
sobes.tech AI
Odpoveď od AI
Šipkovne funkcije so sintaktični sladkor za anonimne funkcije, uvedene v PHP 7.4. Ponujajo krajši način za zapisovanje preprostih lambda funkcij.
-
Anonimne funkcije (zapiralke):
- Lahko vključujejo več vrstic kode in vsebujejo zapleteno logiko.
- Uporabljajo ključ
useza uvoz spremenljivk iz nadrejenega obsega. - So bolj prilagodljive in primerne za kompleksne naloge.
-
Puščice funkcije:
- Vsebujejo le en izraz, katerega rezultat se implicitno vrne.
- Imajo avtomatski dostop do spremenljivk iz nadrejenega obsega (
useni potreben). - Namenjene so za preproste, enovrstične operacije.
Tukaj so primeri:
<?php
// Anonimna funkcija
$greet = function ($name) {
return "Živjo, " . $name;
};
echo $greet('Svet') . "\n";
// Anonimna funkcija z `use`
sporocilo = 'Pozdrav';
$greetWithMsg = function ($name) use ($sporocilo) {
return $sporocilo . ", " . $name;
};
echo $greetWithMsg('Prijatelj') . "\n";
<?php
// Puščica funkcije
$greetArrow = fn ($name) => "Živjo, " . $name;
echo $greetArrow('Svet') . "\n";
// Puščica funkcije z avtomatskim dostopom do nadrejenega obsega
$sporociloArrow = 'Pozdrav';
$greetArrowWithMsg = fn ($name) => $sporociloArrow . ", " . $name;
echo $greetArrowWithMsg('Prijatelj') . "\n";
Razlike v omejitvah:
| Možnost | Anonimna funkcija | Puščica funkcije |
|---|---|---|
| Večvrstična koda | Da | Ne |
return ključna beseda |
Da (obvezno) | Ne (implicitno) |
use ključna beseda |
Da (za uvoz) | Ne (samodejno) |
| Zapletena logika | Da | Ne |
Izbira med njima je odvisna od kompleksnosti naloge in preferenc v sintaksi. Za preproste operacije je bolj priročno uporabljati puščice funkcije zaradi njihove jedrnatosti.