При необходимости использовать (в 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Сентябрь 23, 2015 г.
В этом году писал реализацию данной функции для проекта C2C-base. Оказывается, бывает ИНН двух видов - для юридических лиц и физ лиц - 10 или 12 знаков соответственно. Проверка большинства подобных кодов осуществляется по контрольным цифрам, содержащимся ...
Читать
Октябрь 2, 2018 г.
К JSON можно относиться как к одной из разновидностей текстовых форматов передачи данных. Но для PHP это просто ещё одна скалярная строка. Как определить, что перед нами действительно JSON?
Чтобы убедиться, придется попытаться декодировать строку. ...
Читать
Апрель 23, 2017 г.
Предлагаю код очень простой функции-парсера атрибутов из кусочков html кода. Основное назначение - разбирать текст short-codes.
На входе: html код или shortcode.
На выходе: имя тега и набор атрибутов. Если ничего подходящего не найдено - получим ...
Читать
Февраль 27, 2019 г.
Это частая задача возникает при чтении логов, пользовательских данных и .т.п. PHP даёт пару отличных инструментов, для её решения.
Функция strtotime()
Эта функция с довольно сложным функционалом, пытается определить не только формат пользовательского ...
Читать