我想创建一个监听器类
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 行中的 Foo::$bar
可捕获的致命错误:传递给 Listener::add() 的参数 1 必须是可调用的,给定 null,在第 18 行的 index.php 中调用并在第 5 行定义的 index.php
我究竟做错了什么?
对于 PHP
public function add(callable $function)
with:
public function add($function)
调用它:
$listener->add(array($this, 'bar'));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)