私は次のものを持っているとしましょう:
class C {
private $f;
public function __construct($f) {
$this->f = $f;
}
public function invoke ($n) {
$this->f($n); // <= error thrown here
}
}
$c = new C(function ($m) {
echo $m;
});
$c->invoke("hello");
上記は次のエラーをスローします。
致命的なエラー: 未定義のメソッド C::f() の呼び出し
$this->f
そして、オブジェクトのメンバー関数を呼び出すのと同じ構文を使用してコールバック関数を呼び出そうとしているためだと推測しています。
では、メンバー変数に格納されている関数を呼び出すための構文は何ですか?