При необходимости использовать (в PHP коде) замыкание (closure) A в коде замыкания B, возникает проблема в области видимости. Т.к. внутри B о функции A ничего не известно.
Пример ситуации:
|
|
$A = function() { ... }; $B = function() { ... $localVar = $A(); }; |
Для того чтобы в пространство имен замыкания B попала первая анонимная функция, нужно либо передать её как параметр, либо использовать директиву use:
|
|
$A = function() { ... }; $B = function() use (&$A) { ... $localVar = $A(); }; |
Если требуется рекурсивный вызов анонимной функции, то точно также используется директива use с именем этой функции:
|
|
$B = function() use (&$B) { ... $localVar = $B(); }; |
Данная запись опубликована в 14.12.2020 17:25 и размещена в рубрике PHP.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Июль 3, 2012 г.
Выкладываю php код, по просьбе Blagtoof. Забавно, что это кому то может быть нужно. :) А мне не жалко. Забросил по понятным причинам саму игру.
Скачать как файл (download php code as text file).
[crayon-6a2ec15eadb4d122751116/]
Читать
Январь 1, 2018 г.
Может пригодиться, к примеру, для задач кеширования. Мы запросим с сервера только заголовки файла и извлечем из них значение last-modified.
Почти готовый вариант я нашел в сети, чуть-чуть изменил для своих задач. Принцип описан ваше.
На входе ...
Читать
Ноябрь 17, 2022 г.
Рассмотрим здесь вариации с выполнением base auth. Как оказывается из опыта работы с некоторыми API, они не являются эквивалентными. И одна форма запроса может не работать, в то время как другая будет выполняться.
Задача следующая - получить содержимое ...
Читать
Май 17, 2011 г.
Хорошо если ваш сайт работает во всех, или почти во всех браузерах так, как вы того хотите. Все меняется, выходят новые версии, появляются новые возможности, и глупо их не использовать, в угоду "старичкам". Года 1,5 назад IE 6.0 (судя по статистике посещений ...
Читать