Sobes.tech
Middle

Čo je uzáver v PHP?

sobes.tech AI

Odpoveď od AI

Objekt-funkcia s možnosťou zachytiť premenné z okolia, v ktorom bola vytvorená, aj po ukončení tohto okolia.

<?php
// Uzávierka, ktorá zachytí $factor
$multiplyBy = function ($factor) {
    return function ($number) use ($factor) {
        return $number * $factor;
    };
};

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

echo $double(10); // Výstup: 20
echo $triple(10); // Výstup: 30

Hlavné vlastnosti:

  • Sú inštanciami triedy Closure.
  • Môžu dediť premenné z nadriadeného prostredia pomocou kľúčového slova use.
  • Dedičné premenné sú dediťované hodnotou, ak nie je výslovne uvedené dedenie odkazom (use (&$premenná)).
  • Často sa používajú na vytváranie anonymných funkcií, ktoré "pamätajú" kontext svojho vzniku.