Анонимные функции и использование ключевого слова use (PHP)
Всем привет))
Добрался до closures, докатился, почти как колобок которого катили любопытство и жажда неизвестного. Так вот, его катили, а меня они пинают ногами, а я качусь)))
Возникла проблема.
Не могу понять почему используется ключевое слово use? Ведь можно получить тот же результат но без use. Пример на картинке.
В итоге возникли вопросы: В чем преимущество использования ключевого слова use?
Что оно дает чего не дает использование стандартного метода передачи аргументов посредством круглых скобок в функции?
Всем заранее спасибо за ответы)
Картинка не хочет загружаться (((
Вот код https://pastebin.com/LjmcjY91

Загрузилась)))
1. Если анонимная функция используется там, где набор передаваемых параметров от твоего желания никак не зависит. Например, в array_map, array_filter и т. д.
2. Если результатом функции является функция (а-ля JavaScript). Предельно упрощённый пример:
function check($min, $max) {
return function($val) use ($min, $max) { return $val >= $min && $val <= $max; }
}
Вот здесь, например, показано, как использовать: http://www.elisdn.ru/blog/96/functional-php-cost
P.S. Рассматривай создание анонимной функции как создание объекта, где список use сохраняется конструктором в атрибутах, а список параметров и тело функции (с заменой переменных в use на атрибуты объекта) переносятся в __invoke.
P.P.S. В PHP анонимная функция и есть объект. Правда, немного другой структуры: http://php.net/manual/ru/class.closure.php