Задать вопрос
inilim2
@inilim2
Intern PHP

Возможно ли добавить use переменные после объявления анонимной функции?

Что-то вроде:
$a = function()
{

};

$b = 'value';

$a = $a use ($b);
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
iMedved2009
@iMedved2009
Не люблю людей
ага :)
$a = function($b)
{
echo $b;
};

$a('value1');
$a('value2');
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
1. можно импортировать переменные по ссылке use (&$b)
2. можно привязать замыкание к другой области видимости используя один из методов Closure и вместо импорта через use использовать свойства объекта
class Scope
{
      public int  $b = 1;
}
class Scope2
{
      public int $b = 2;
}
$callback = function (int $a) {
     return $a + $this->b;
};

$scope = new Scope();
$scope2 = new Scope2();
var_dump($callback->call($scope, 3), $callback->call($scope2, 3));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы