我想创建一个监听器类
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);
但是这个代码失败,此错误:
注意:未定义的属性:在index.php中富:: $栏上线18
捕获的致命错误:传递给监听器参数1 ::添加()必须调用,空给出,称为在线路18上的index.php和第5行中定义的index.php
我究竟做错了什么?