监视器主要功能
- .绑定事件 支持一个事件绑定多个动作
- 触发事件
class Event { static $list = []; //绑定事件 public static function listen($name, $function) { //验证 $function 是否是闭包 if (!is_callable($function)) { echo '不是闭包'; exit; }else{ var_dump($function); } self::$list[$name][] = $function; } //触发 public static function trigger($name, $param) { foreach (self::$list[$name] as $k => $v) { //var_dump($v);die; call_user_func_array($v, $param); } } }
调用代码例子
class fly { public function run() { echo '废了'; } } $fly = new fly(); Event::listen('walk', [$fly, 'run']); Event::listen('walk', function ($a) { var_dump($a); }); Event::trigger('walk', ['d']);