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