Sobes.tech
Middle

რა არის დახურვა PHP-ში?

sobes.tech AI

პასუხი AI-სგან

ობიექტ-ფუნქცია, რომელსაც შეუძლია შექმნის გარემოდან ცვლადების დაჭერა, მიუხედავად იმისა, რომ ეს გარემო დასრულდა მისი შესრულების შემდეგ.

<?php
// დახურვა, რომელიც იჭერს $factor-ს
$multiplyBy = function ($factor) {
    return function ($number) use ($factor) {
        return $number * $factor;
    };
};

$double = $multiplyBy(2);
$triple = $multiplyBy(3);

echo $double(10); // გამოტანა: 20
echo $triple(10); // გამოტანა: 30

ძირითადი მახასიათებლები:

  • წარმოადგენს Closure კლასის ინстанციებს.
  • შეიძლება მემკვიდრეობით მიიღოს ცვლადები მშობელ გარემოდან use საკვანძო სიტყვით.
  • მემკვიდრეობით მიღებული ცვლადები მემკვიდრეობით მიიღება მნიშვნელობით, თუ არ არის მითითებული პირდაპირი მემკვიდრეობა (use (&$ცვლადი)).
  • ხშირად გამოიყენება ანონიმური ფუნქციების შესაქმნელად, რომლებიც "დამახსოვრებენ" თავიანთ შექმნის კონტექსტს.