<?php
$a = 1;
$b = 2;
// создаем замыкание и в этот момент внешние переменные привязываются к функции
// $a передаем по значению $b по ссылке
$closure = function () use ($a, &$b) {
echo "Внутри функции a = $a, b = $b\n";
};
// Проверим что видит функция
$closure();
// а что еcли поменять переменные?
$a = 100;
$b = 200;
$closure();
// А что если уничтожить их?
unset($b); // Эта команда уничтожает переменную $b, но поскольку в замыкании сохранена // ссылка на нее, полностью она пока не уничтожена
$closure();
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7CgokYSA9IDE7CiRiID0gMjsKCi8vINGB0L7Qt9C00LDQtdC8INC30LDQvNGL0LrQsNC90LjQtSDQuCDQsiDRjdGC0L7RgiDQvNC+0LzQtdC90YIg0LLQvdC10YjQvdC40LUg0L/QtdGA0LXQvNC10L3QvdGL0LUg0L/RgNC40LLRj9C30YvQstCw0Y7RgtGB0Y8g0Log0YTRg9C90LrRhtC40LgKLy8gJGEg0L/QtdGA0LXQtNCw0LXQvCDQv9C+INC30L3QsNGH0LXQvdC40Y4gJGIg0L/QviDRgdGB0YvQu9C60LUKJGNsb3N1cmUgPSBmdW5jdGlvbiAoKSB1c2UgKCRhLCAmJGIpIHsKCWVjaG8gItCS0L3Rg9GC0YDQuCDRhNGD0L3QutGG0LjQuCBhID0gJGEsIGIgPSAkYlxuIjsKfTsKCi8vINCf0YDQvtCy0LXRgNC40Lwg0YfRgtC+INCy0LjQtNC40YIg0YTRg9C90LrRhtC40Y8KJGNsb3N1cmUoKTsKCi8vINCwINGH0YLQviDQtWPQu9C4INC/0L7QvNC10L3Rj9GC0Ywg0L/QtdGA0LXQvNC10L3QvdGL0LU/CiRhID0gMTAwOwokYiA9IDIwMDsKCiRjbG9zdXJlKCk7CgovLyDQkCDRh9GC0L4g0LXRgdC70Lgg0YPQvdC40YfRgtC+0LbQuNGC0Ywg0LjRhT8KdW5zZXQoJGEpOwp1bnNldCgkYik7IC8vINCt0YLQsCDQutC+0LzQsNC90LTQsCDRg9C90LjRh9GC0L7QttCw0LXRgiDQv9C10YDQtdC80LXQvdC90YPRjiAkYiwg0L3QviDQv9C+0YHQutC+0LvRjNC60YMg0LIg0LfQsNC80YvQutCw0L3QuNC4INGB0L7RhdGA0LDQvdC10L3QsAovLyDRgdGB0YvQu9C60LAg0L3QsCDQvdC10LUsINC/0L7Qu9C90L7RgdGC0YzRjiDQvtC90LAg0L/QvtC60LAg0L3QtSDRg9C90LjRh9GC0L7QttC10L3QsAoKJGNsb3N1cmUoKTsK