use()
PHP で無名関数を使用する場合、キーワードを使用することで、そのスコープのすぐ外側から変数を簡単に使用できます。
私の場合、無名関数は既にどこかで定義されていますが、後で (他の場所で) クラス内で呼び出されます。
次のコードは、アイデアを説明するためのものです。
<?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
しかし、匿名関数が実行されるメソッドから変数を取得する方法が本当に必要です。匿名関数が別の場所で宣言されている場合、それを行う方法はありますか..?