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 საკვანძო სიტყვა |
დიახ (იმპორტისთვის) | არა (ავტომატური) |
| რთული ლოგიკა | დიახ | არა |
არჩევანი დამოკიდებულია ამოცანის სირთულეზე და სინტაქსის პრეფერენციებზე. მარტივი მოქმედებებისთვის უფრო მოსახერხებელია სტრელო ფუნქციების გამოყენება მათი მოკლე ფორმის გამო.