При использовании анонимных функций в PHP вы можете легко использовать переменные из-за пределов своей области с помощью ключевого слова use().
В моем случае анонимные функции уже определены где-то, но вызываются позже (в другом месте) в классе.
Следующий фрагмент кода иллюстрирует идею:
<?php
$bla = function ( $var1 ) use ($arg)
{
echo $var1;
};
class MyClass
{
private $func;
public function __construct ( $func )
{
$this->func = $func;
}
public function test ( $arg )
{
$closure = $this->func;
$closure ( 'anon func' );
}
}
$c = new MyClass($bla);
$c->test ( 'anon func' );
Что я делаю, я создаю anonymous function и сохраняю это в переменной. Я передаю эту переменную методу класса, и именно там я хочу запустить анонимную функцию.
Но я не могу использовать ключевое слово use(), чтобы получить параметр $arg из method таким образом. Поскольку анонимная функция была объявлена вне method.
Но мне действительно нужен способ получить переменные из метода, из которого выполняется анонимная функция. Есть ли способ сделать это, когда анонимная функция объявлена где-то еще.?