При необходимости использовать (в 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Сентябрь 6, 2016 г.
Начиная с версии PHP 4.3.0, функция mysql_escape_string() считается устаревшей. PHP будет выдавать соответствующее предупреждение.
Deprecated function: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.
Т.е. ...
Читать
Декабрь 27, 2014 г.
Речь пойдет о небольшой задачке, которая постоянно всплывает при переносе данных со старых сайтов на новые.
Т.е. новый сайт уже готов, но есть старый, на котором какое то количество статей, требующих аккуратного переноса, при чем они содержат картинки. ...
Читать
Сентябрь 23, 2015 г.
В этом году писал реализацию данной функции для проекта C2C-base. Оказывается, бывает ИНН двух видов - для юридических лиц и физ лиц - 10 или 12 знаков соответственно. Проверка большинства подобных кодов осуществляется по контрольным цифрам, содержащимся ...
Читать
Ноябрь 12, 2015 г.
Рассмотрим несколько способов сохранения данных в файл.
Функция file_put_contents() для записи в файл
Функция появилась в 5й версии PHP. Это самый простой, наверное, способ записать скалярные данные (строку или текст) в файл.
[crayon-6a7068d7d824a163652721/] ...
Читать