事件监听与触发的PHP实现

事件监听与触发的PHP实现
本文介绍了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程序设计有所帮助。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部