При необходимости использовать (в 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Декабрь 13, 2014 г.
Объект класса "__PHP_Incomplete_Class" с дополнительным свойством __PHP_Incomplete_Class_Name => 'имя класса' появляется, когда PHP не удается найти объявление класса при операции десериализации объекта. К примеру, такое может происходить при хранении ...
Читать
Декабрь 27, 2014 г.
Речь пойдет о небольшой задачке, которая постоянно всплывает при переносе данных со старых сайтов на новые.
Т.е. новый сайт уже готов, но есть старый, на котором какое то количество статей, требующих аккуратного переноса, при чем они содержат картинки. ...
Читать
Февраль 12, 2017 г.
Если при отправке запроса через CURL по https, вы получаете следующую ошибку:
[crayon-6aa0e6ef75207249284036/]
То можно отключить соответствующие проверки, выключив в опциях следующие флаги -SSL_VERIFYHOST, SSL_VERIFYPEER.
[crayon-6aa0e6ef7520e248694633/] ...
Читать
Июнь 20, 2017 г.
Оказывается, очень частая задача в тестовых заданиях соискателей - это поиск дубля в массиве. В зависимости от нюансов конкретного задания, могут просить:
найти все дубли или один единственный дубль;
использовать в решении самый быстрый алгоритм; ...
Читать