リスナークラスを作成したい
class Listener {
var $listeners = array();
public function add(callable $function) {
$this->listeners[] = $function;
}
public function fire() {
foreach($this->listeners as $function) {
call_user_func($function);
}
}
}
class Foo {
public function __construct($listener) {
$listener->add($this->bar);
}
public function bar() {
echo 'bar';
}
}
$listener = new Listener();
$foo = new Foo($listener);
しかし、このコードはこのエラーで失敗します:
注意:未定義のプロパティ:18行目のindex.phpのFoo :: $ bar
キャッチ可能な致命的なエラー:Listener :: add()に渡される引数1は呼び出し可能で、nullが指定され、18行目のindex.phpで呼び出され、5行目でindex.phpが定義されている必要があります
私は何が間違っているのですか?