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 (&$փոփոխական)).
  • Սովորաբար օգտագործվում են անանուն ֆունկցիաներ ստեղծելու համար, որոնք "հիշում" են իրենց ստեղծման կոնտեքստը։