При необходимости использовать (в 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Апрель 12, 2013 г.
О сути метода я рассказываю здесь - Бегство от спама.
Для работы понадобится hook на новые комментарии - pre_comment_approved, который мы объявим в файле темы - function.php. Если в вашей теме нет такого файла - создайте :). Нужно модифицировать всего ...
Читать
Декабрь 27, 2014 г.
Речь пойдет о небольшой задачке, которая постоянно всплывает при переносе данных со старых сайтов на новые.
Т.е. новый сайт уже готов, но есть старый, на котором какое то количество статей, требующих аккуратного переноса, при чем они содержат картинки. ...
Читать
Сентябрь 13, 2016 г.
PHP обладает целым арсеналом работы со строками. Сделать буквы заглавными или наоборот перевести в строчные - нет ничего проще.
Базовый набор функций для работы со строками содержит такие функции как:
string strtolower ( string $string );
- ...
Читать
Июль 3, 2025 г.
Если вам нужно передать данные в URL в PHP, вы наверняка сталкивались с функцией urlencode(). А может быть, слышали и о rawurlencode(). И ещё третья функция — http_build_query() — всплывает в ответах на форумах и в рекомендациях официальной документации. ...
Читать