Sobes.tech
Middle

Co je to uzávěr v PHP?

sobes.tech AI

Odpověď od AI

Objekt-funkce s možností zachytit proměnné z okolí, ve kterém byla vytvořena, i po ukončení tohoto okolí.

<?php
// Uzávěr, který 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:

  • Jsou instancemi třídy Closure.
  • Mohou dědit proměnné z nadřazeného prostředí pomocí klíčového slova use.
  • Děděné proměnné jsou děděny hodnotou, pokud není výslovně uvedeno dědění odkazem (use (&$proměnná)).
  • Často se používají k vytváření anonymních funkcí, které "pamatují" kontext svého vzniku.