这两天看了点事件机制,那么在php中,如何实现最简单的事件呢?
废话不多说,我们上代码。
<?php class Event{ //事件名称 public $name; //存储hander public $events = []; //用于绑定hander public function on($hander){ $this->events[] = $hander; } //用于触发事件 public function trigger(){ foreach($this->events as $event){ call_user_func($event); } } } function handle(){ echo "终于下班了! 可惜要加班! "; } $event = new Event(); $event->name = '下班事件'; $event->on('handle'); $event->trigger();
这些代码究竟是什么意思呢?
首先定义一个事件实例
$event = new Event();
然后给这个事件起个名字
$event->name = '下班事件';
再然后给这个事件绑定一个处理程序
$event->on('handle');
最后触发这个事件
$event->trigger();
在触发过程中,会遍历events数组,顺序执行已经绑定的处理器~