本文实例讲述了PHP实现事件监听与触发的方法。分享给大家供大家参考。具体分析如下:
闲来无事,想了想PHP如何实现事件监听,参考了jQuery的事件绑定思路,简单的实现了一下。
主要功能:
1.绑定事件 支持一个事件绑定多个动作,支持绑定一次性事件 2.触发事件 3.注销事件
if(!is_callable($callback)) return false;
self::$listens[$event][] = array('callback'=>$callback,'once'=>$once);
return true;
}
public static function one($event,$callback){
return self::listen($event,true);
}
public static function remove($event,$index=null){
if(is_null($index))
unset(self::$listens[$event]);
else
unset(self::$listens[$event][$index]);
}
public static function trigger(){
if(!func_num_args()) return;
$args = func_get_args();
$event = array_shift($args);
if(!isset(self::$listens[$event])) return false;
foreach((array) self::$listens[$event] as $index=>$listen){
$callback = $listen['callback'];
$listen['once'] && self::remove($event,$index);
call_user_func_array($callback,$args);
}
}
}
以下是一些调用的例子:
<div class="codetitle"><a style="CURSOR: pointer" data="20984" class="copybut" id="copybut20984" onclick="doCopy('code20984')"> 代码如下: