При необходимости использовать (в 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Август 25, 2017 г.
Встроенные библиотеки PHP не позволяют работать с форматами данных популярного табличного процессора Excel. За исключением текстового формата CSV (см. ...
Читать
Май 17, 2011 г.
Хорошо если ваш сайт работает во всех, или почти во всех браузерах так, как вы того хотите. Все меняется, выходят новые версии, появляются новые возможности, и глупо их не использовать, в угоду "старичкам". Года 1,5 назад IE 6.0 (судя по статистике посещений ...
Читать
Сентябрь 15, 2017 г.
Чтобы измерить скорость работы кода нужны две вещи - "код" и секундомер. Программный код у вас есть, а секундомер, оформленный в виде класса - можете взять здесь.
Очень простой, основанный на функции microtime(), секундомер скрывает рутину по сохранению ...
Читать
Сентябрь 13, 2016 г.
PHP обладает целым арсеналом работы со строками. Сделать буквы заглавными или наоборот перевести в строчные - нет ничего проще.
Базовый набор функций для работы со строками содержит такие функции как:
string strtolower ( string $string );
- ...
Читать