Junior
Mis on noole- ja anonüümfunktsioonid PHP-s?
sobes.tech AI
Vastus AI-lt
Noolefunktsioonid on süntaksisuhkur anonüümsete funktsioonide jaoks, mis on esitatud PHP 7.4-s. Need pakuvad lühemat viisi lihtsate lambda-funktsioonide kirjutamiseks:
-
Anonüümsed funktsioonid (sulgud):
- võivad sisaldada rohkem kui ühte koodirida ja sisaldada keerulist loogikat.
- kasutavad sõna
use, et importida muutujad vanemast vaateväljast. - on paindlikumad, sobivad keerukate ülesannete jaoks.
-
Noolefunktsioonid:
- sisaldavad ainult ühte avaldist, mille tulemus tagastatakse kaudselt.
- neil on automaatne juurdepääs vanemate vaatevälja muutujatele (ei vaja
use). - mõeldud lihtsate, ühe realise operatsioonide jaoks.
Siin on näited:
<?php
// Anonüümne funktsioon
$greet = function ($name) {
return "Tere, " . $name;
};
echo $greet('Maailm') . "\n";
// Anonüümne funktsioon `use`-ga
$message = 'Tere';
$greetWithMsg = function ($name) use ($message) {
return $message . ", " . $name;
};
echo $greetWithMsg('Sõber') . "\n";
<?php
// Noolefunktsioon
$greetArrow = fn ($name) => "Tere, " . $name;
echo $greetArrow('Maailm') . "\n";
// Noolefunktsioon automaatse juurdepääsuga vanemate vaatevälja
$messageArrow = 'Tere';
$greetArrowWithMsg = fn ($name) => $messageArrow . ", " . $name;
echo $greetArrowWithMsg('Sõber') . "\n";
Piirangute erinevused:
| Võimalus | Anonüümne funktsioon | Noolefunktsioon |
|---|---|---|
| Mitmerida kood | Jah | Ei |
return sõna |
Jah (kohustuslik) | Ei (kaudne) |
use sõna |
Jah (importimiseks) | Ei (automaatne) |
| Keeruline loogika | Jah | Ei |
Valik sõltub ülesande keerukusest ja süntaksi eelistustest. Lihtsate toimingute jaoks on mugavam kasutada noolefunktsioone nende lühiduse tõttu.