у меня есть:закрытие PHP в анонимной функции и ссылки и
function outside($limit) {
$tally = 0;
return function() use ($limit, &$tally) {
$tally++;
if($tally > $limit) {
echo "limit has been exceeded";
}
};
}
$inside = outside(2);
$inside();
$inside();
$inside();
Выходы: limit has been exceeded
Мое понимание:
на
$inside = outside(2);
это возвращает анонимную функцию и присваивает его переменная$inside
. Анонимная функция использует значение$limit
(2) и$tally
(0).функция
$inside()
называется. Это увеличивает$tally
до1
Значение как-то запомнено, и так$limit
. Какова цель амперсанда до$tally
? Я знаю, что он используется для создания ссылок , но в этом контексте меня смущает. Как это замыкание запомнить значение$limit
?
Любые ссылки на официальную документацию помогут!
Теперь есть интересный код! Некоторое время не видели этого. – matrixdevuk
Я действительно протестую, что этот вопрос является дубликатом. Хотя это очень похоже, этот вопрос больше посвящен переменной, передаваемой по ссылке, а не использованию самого ключевого слова 'use'. – Scopey