Замыкания в PHP
$message = 'привет';
// Наследуем $message
$example = function () use ($message) {
var_dump($message);
};
$example(); // "Привет"
// Значение унаследованной переменной задано там, где функция определена,
// но не там, где вызвана (в отличии от JS)
$message = 'мир';
$example(); // "Привет"function getCounter(){
$count = 0;
return function () use (&$count){ // наследуем по ссылке $count из родительской области видимости
return $count++;
};
}
$counter = getCounter(); // получаем замыкание которое хранит в себе значение переменной $count, которая находится в его "замкнутой" родительской области видимости
var_dump($counter);
echo $counter(); // 0
echo $counter(); // 1
echo $counter(); // 2
var_dump($counter);Замыкания в PHP в ООП (Автоматическое связывание $this)
$this)Last updated