При необходимости использовать (в 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Март 2, 2017 г.
Посмотрим как можно сформировать url относительно текущего местоположения файла в php.
К примеру, у в каталоге /site-script/ находится программа на PHP и подкаталог /site-script/img, где хранятся картинки.
Требуется построить относительный ...
Читать
Май 7, 2018 г.
Скаляры для PHP все на одно лицо. Строки или числа, с плавающей запятой или без. PHP не заморачивается. Ему не нужны строгие рамки типов скаляра.
Платить за эту вольность приходится довольно скоро. Начнем с того, что PHP знает два оператора сложения, ...
Читать
Ноябрь 17, 2022 г.
Рассмотрим здесь вариации с выполнением base auth. Как оказывается из опыта работы с некоторыми API, они не являются эквивалентными. И одна форма запроса может не работать, в то время как другая будет выполняться.
Задача следующая - получить содержимое ...
Читать
Ноябрь 6, 2012 г.
Есть разные пути, простые и сложные (вплоть до написания своей PHP библиотеки для конвертации HTML в PDF). Но мы трудным путем не пойдем, а воспользуемся готовым сервером, выполняющим данный экспорт. Для самых ленивых приведу пример его использования ...
Читать