本文
介绍了PHP实现事件监听和触发的
方法,供大家
参考,具体分析如下:
我想php,如何实现一个事件监视器,参考jQuery事件绑定的思想,实现一个简单的。
主要
功能:
1。绑定事件
支持由事件绑定的多个
操作,支持绑定一次性事件。
2。触发事件
三.
取消事件
复制代码代码如下:类事件
{
受
保护的静态侦听器=数组();
公共静态
函数监听($事件,回调,$ = false){
如果(!is_callable(美元回调))返回false;
自::$听{ $事件} { } =阵列('callback= >美元回调,一旦= > $一次);
返回true;
}
公共静态函数1($事件,$回调){
返回自我::听($事件,$回调,true);
}
公共静态函数
删除($事件,$ = NULL){
如果(is_null(美元指数))
unset(自::$听{ $事件});
其他的
unset(自::{ } {事件监听美元美元美元指数});
}
公共静态函数触发器(){
如果(!func_num_args())返回;
一美元= func_get_args();
事件= array_shift美元(合一);
如果(!isset(自::$听{ $事件}))返回false;
foreach((阵列)自::听{ }为美元美元事件美元指数= > $听){
美元美元回调=听{ 'callback};
听一次}自美元{::删除($事件,美元指数);
call_user_func_array($美元回调,args);
}
}
}
下面是一些调用的示例:
将代码复制如下:增加对步行事件的监视
事件::听(行走,功能()){
我在走路…;
});
增加监视/行走一次性事件
事件::听(行走,功能()){
我在倾听…;
},真的);
事件行走
事件::触发(行走的);
*
我在走路…
我在听…
* /
事件::触发(行走的);
*
我在走路…
* /
事件::一(',功能($name =){)
我是{ };
});
触发事件::(说','deeka '); / /我deeka输出
触发事件::(说','deeka '); / /不
运行 类Foo
{
公共功能条(){
回声foo()::酒吧是calledn ;
}
公共功能测试(){
回声foo:foo():被称为中心:。json_encode(func_get_args())。n;
}
}
新富;
事件::听('bar,阵列($ foo,'bar '));
触发事件::('bar);
事件::听(测试,阵列($ foo,测试));
事件::触发(测试',1, 2, 3);
上课吧
{
公共静态函数富(){
回声栏::foo()是calledn ;
}
}
事件::听('bar1,阵列('bar ','foo '));
触发事件::('bar1);
事件::听('bar2 ','bar::foo);
Event:: trigger ('bar2');
函数条(){
回声酒吧()是calledn ;
}
事件::听('bar3 ','bar);
触发事件::('bar3);
希望本文能对大家的PHP
程序设计有所帮助。