При использовании анонимных функций в 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
.
Но мне действительно нужен способ получить переменные из метода, из которого выполняется анонимная функция. Есть ли способ сделать это, когда анонимная функция объявлена где-то еще.?