phpでクラスのメンバ変数に格納されているコールバックを直接呼び出すことはできますか?私は一時的に自分のコールバックをローカル変数に保存している回避策を使っています。メンバー変数としてコールバックコール
class CB {
private $cb;
public function __construct($cb) {
$this->cb = $cb;
}
public function call() {
$this->cb(); // does not work
$cb = $this->cb;
$cb(); // does work
}
}
PHPは$this->cb()
、すなわち存在しない、有効な方法ではないことを訴えます。
同様の質問が尋ねたと答えました/ 1656151/php-callable-object-as-object-member)を参照してください。 Cliffノートのバージョン: "ほとんどの場合、入力がゆるんでいるため、実際に何をするのかを実際に推測する方法がないため、初期設定でエラーが発生することがデフォルトになります。" – Problematic
おそらく '{$ this-> cb}()'ですか? '{}'はPHPに '$ cb'メンバ変数としてcb参照を見せ、オブジェクトのcbメソッドではないようにしなければなりません。 –
marc、no、»unexpected {、expecting _something else_ ...« – knittl