При необходимости использовать (в 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Январь 28, 2016 г.
Многие не задумываются при работе в PHP со стандартными функциями даты-времени о диапазоне их применимости (date(), time(), mktime() и т.п). Так мы можем скоро столкнуться с проблемой, подобная которой случалась уже раньше - "ошибка 2000". Я прекрасно ...
Читать
Август 1, 2017 г.
Насколько похожи две строки? В PHP для выяснения подобия строк есть две функции - similar_text() и levenshtein().
Первая из них считает процент ...
Читать
Ноябрь 10, 2015 г.
Серию валидаторов пополняю функцией проверки введенного email на соответствие формальным требованиям.
По стандарту RFC822
Если есть необходимость соблюсти все требования, которые упомянуты в громоздкой спецификации RFC822, то лучший путь - воспользоваться ...
Читать
Май 12, 2013 г.
Самое не приятное, с чем можно встретиться на многих сайтах - это регистрация учетной записи. Неприятное ощущение усиливается ещё и от контраста - везде ...
Читать