Sobes.tech
Middle

Šta je zatvaranje u PHP-u?

sobes.tech АИ

Одговор од АИ

Objekat-funkcija sa mogućnošću hvatanja promenljivih iz okruženja u kojem je kreirana, čak i nakon što je to okruženje završilo sa izvršavanjem.

<?php
// Zatvaranje koje hvata $factor
$multiplyBy = function ($factor) {
    return function ($number) use ($factor) {
        return $number * $factor;
    };
};

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

echo $double(10); // Izlaz: 20
echo $triple(10); // Izlaz: 30

Glavne osobine:

  • Predstavljaju instance klase Closure.
  • Mogu naslediti promenljive iz nadređenog okruženja pomoću ključne reči use.
  • Nasleđene promenljive se nasledjuju po vrednosti, osim ako nije eksplicitno naznačeno nasledjivanje po referenci (use (&$promenljiva)).
  • Često se koriste za kreiranje anonimnih funkcija koje "sećaju" kontekst svog kreiranja.