PHP переменные в анонимных функциях
Я играл с анонимными функциями в PHP и понял, что они, кажется, не достигают переменных вне их.
Есть ли способ обойти эту проблему?
Пример:
$variable = "nothing";
functionName($someArgument, function() {
$variable = "something";
});
echo $variable; //output: "nothing"
Это выведет "ничего". Есть ли способ, которым анонимная функция может получить доступ к $variable
?
Ответы
Ответ 1
Да, используйте замыкание:
functionName($someArgument, function() use(&$variable) {
$variable = "something";
});
Обратите внимание, что для того, чтобы вы могли изменить $variable
и получить измененное значение вне области действия анонимной функции, на него нужно ссылаться в закрытии, используя &
.