Sobes.tech
Junior

PHP-ում սլաքների և անանուն ֆունկցիաների ինչն է?

sobes.tech AI

Պատասխան AI-ից

Ցույցային ֆունկցիաները՝ դա PHP 7.4-ում ներկայացված անանուն ֆունկցիաների սինտաքսիկ շաքարն են: Դրանք առաջարկում են ավելի կարճ ձև՝ պարզ լամբդա-ֆունկցիաներ գրելու համար:

  • Անանուն ֆունկցիաներ (կապեր):

    • կարող են պարունակել մի քանի տող կոդ և ունենալ բարդ տրամաբանություն:
    • օգտագործում են use բանալի բառը՝ փոփոխականները ներմուծելու համար ծնողական տեսադաշտից:
    • ավելի ճկուն են, հարմար են բարդ խնդիրների համար:
  • Ցույցային ֆունկցիաներ:

    • պարունակում են միայն մեկ արտահայտություն, որի արդյունքը անուղղակիորեն վերադառնում է:
    • ավտոմատ հասանելիություն ունեն ծնողական տեսադաշտի փոփոխականներին (չի պահանջվում use):
    • նախատեսված են պարզ, մեկ տողանոց գործողությունների համար:

Նմուշներ՝

<?php
// Անանուն ֆունկցիա
$greet = function ($name) {
    return "Բարև, " . $name;
};
echo $greet('Աշխարհ') . "\n";

// Անանուն ֆունկցիա `use`-ով
$message = 'Բարև';
$greetWithMsg = function ($name) use ($message) {
    return $message . ", " . $name;
};
echo $greetWithMsg('Ընկեր') . "\n";
<?php
// Ցույցային ֆունկցիա
$greetArrow = fn ($name) => "Բարև, " . $name;
echo $greetArrow('Աշխարհ') . "\n";

// Ցույցային ֆունկցիա ավտոմատ հասանելիությամբ
$messageArrow = 'Բարև';
$greetArrowWithMsg = fn ($name) => $messageArrow . ", " . $name;
echo $greetArrowWithMsg('Ընկեր') . "\n";

Ավելի սահմանափակումների տարբերություններ՝

Հնարավորություն Անանուն ֆունկցիա Ցույցային ֆունկցիա
Մեծ տողային կոդը Այո Ոչ
return բանալի բառը Այո (պարտադիր) Ոչ (անուղղակի)
use բանալի բառը Այո (համար ներմուծման) Ոչ (ավտոմատ)
Բարդ տրամաբանություն Այո Ոչ

Ընտրությունը կախված է խնդիրների բարդությունից և սինտաքսիսի նախընտրություններից: Պարզ գործողությունների համար ավելի հարմար է օգտագործել ցուցային ֆունկցիաներ՝ դրանց կարճության պատճառով։