Возможно, вы могли бы использовать Closure, чтобы сделать это ...
Редактировать: потребовалось некоторое время, чтобы запомнить синтаксис, но вот как это будет выглядеть:
function foo()
{
$l = "xyz";
$bar = function () use ($l)
{
var_dump($l);
};
$bar();
}
foo();
И, запустив скрипт, вы получите:
$ php temp.php
string(3) "xyz"
Пара примечаний:
- Вы должны поставить
;
после объявления функции!
- Вы можете
use
переменную по ссылке, с &
перед ее именем: use (& $l)
Для получения дополнительной информации, например, вы можете взглянуть на эту страницу в руководстве: Анонимные функции