Junior
Wat zijn arrow functies en anonieme functies in PHP?
sobes.tech AI
Antwoord van AI
Pijlfuncties zijn syntactische suiker voor anonieme functies, geïntroduceerd in PHP 7.4. Ze bieden een kortere manier om eenvoudige lambda-functies te schrijven.
-
Anonieme functies (sluitingen):
- Kunnen meer dan één regel code bevatten en complexe logica bevatten.
- Gebruiken het sleutelwoord
useom variabelen uit de bovenliggende scope te importeren. - Zijn flexibeler en geschikt voor complexe taken.
-
Pijlfuncties:
- Bevat slechts één uitdrukking, waarvan het resultaat impliciet wordt geretourneerd.
- Hebben automatische toegang tot variabelen uit de bovenliggende scope (geen
usenodig). - Zijn bedoeld voor eenvoudige, eendelige operaties.
Hier enkele voorbeelden:
<?php
// Anonieme functie
$greet = function ($name) {
return "Hallo, " . $name;
};
echo $greet('Wereld') . "\n";
// Anonieme functie met use
$message = 'Groeten';
$greetWithMsg = function ($name) use ($message) {
return $message . ", " . $name;
};
echo $greetWithMsg('Vriend') . "\n";
<?php
// Pijl functie
$greetArrow = fn ($name) => "Hallo, " . $name;
echo $greetArrow('Wereld') . "\n";
// Pijl functie met automatische toegang tot bovenliggende scope
$messageArrow = 'Groeten';
$greetArrowWithMsg = fn ($name) => $messageArrow . ", " . $name;
echo $greetArrowWithMsg('Vriend') . "\n";
Verschillen in beperkingen:
| Mogelijkheid | Anonieme functie | Pijl functie |
|---|---|---|
| Meerdelige code | Ja | Nee |
return-woord |
Ja (verplicht) | Nee (impliciet) |
use-woord |
Ja (voor import) | Nee (automatisch) |
| Complexe logica | Ja | Nee |
De keuze tussen hen hangt af van de complexiteit van de taak en de voorkeuren in de syntax. Voor eenvoudige handelingen is het gebruik van pijlfuncties handiger vanwege hun beknoptheid.