クラス内で無名関数を呼び出すより良い方法はありますか? これが私の言いたいことを明確にする簡単な例です。
class foo
{
private $call_back_1 = null;
private $call_back_2 = null;
function __construct($func1, $func2)
{
$this->call_back_1 = func1;
$this->call_back_2 = func2;
}
function provokeCallBacks()
{
//this does not work, and gives an error
$this->call_back_1();
//I would like to avoid this
$method = $this->call_back_2;
$method();
}
}
$call1 = function(){ echo "inside call 1"};
$call2 = function(){ echo "inside call 2"};
$test = new foo(call1, call2);
$test->provokeCallBacks();
* 更新 1: デモ用にその場で書いたので、構文エラーは無視してください。*
foo:provokeCallBacks 内で、匿名関数を呼び出そうとしていますが、最初の方法が機能せず、エラーが発生します。2番目のものは機能しますが、「$ method」という一時変数を使用して呼び出しを行う必要があるのは少しばかげています。
無名関数を呼び出すためのより良い方法が存在するかどうかを知りたいです。