Подтвердить что ты не робот

PHP переменные в анонимных функциях

Я играл с анонимными функциями в PHP и понял, что они, кажется, не достигают переменных вне их. Есть ли способ обойти эту проблему?

Пример:

$variable = "nothing";

functionName($someArgument, function() {
  $variable = "something";
});

echo $variable;  //output: "nothing"

Это выведет "ничего". Есть ли способ, которым анонимная функция может получить доступ к $variable?

4b9b3361

Ответ 1

Да, используйте замыкание:

functionName($someArgument, function() use(&$variable) {
  $variable = "something";
});

Обратите внимание, что для того, чтобы вы могли изменить $variable и получить измененное значение вне области действия анонимной функции, на него нужно ссылаться в закрытии, используя &.