当前位置:首页 - 奇乐彩票app - 正文

君子好学,自强不息!

原标题:理解PHP中的钩子和一个示例教程

钩子定义

钩子是编程中的一个常见概念,非常重要。它使得系统非常容易扩展(不了解其内部实现机制,这可以减少大量的工作量)。

可以理解的是,当一个玻璃球从空中落下,并且将要击中一个人时,一个事件将会提前发生。例如,告诉被砸的人球已经落下来了。

讲述是一个事件,一个钩子,我们可以对不同的人做出不同的反应。如果是男人,我们告诉他球不疼,如果是女人,我们告诉她疼。

胡克·[的功能/s2/]

钩子函数可以截取和处理来自其他应用程序的消息。每当发出特定的消息时,钩子子程在到达目的窗口之前捕获消息,也就是说,钩子函数首先获得控制权。此时,钩子函数可以处理(改变)消息,或者继续传递消息而不进行处理,或者强制消息传递结束。

挂钩实现

钩子的完整实现应该被称为事件驱动的。事件驱动程序分为两个阶段。第一阶段是注册事件,以便为将来可能发生的“事件”命名。

简单的实现方法是:

使用singleton模式生成持久对象或注册全局变量,然后将事件的名称以及对应于该事件的类和方法插入全局变量。也就是说,安装一个钩子。

第二阶段是触发事件,本质上是在事件的全局变量中查询要触发的事件的名称,然后找到注册的类和方法,实例化并运行。这样,我们就可以摆脱传统的程序必须按顺序排列的规则,进一步实现解耦的目的。

代码示例1:

班级舞会

公共功能关闭

回声“球在下降”;

//注册事件

胡克::加("人");

胡克::加("妇女");

}

公共职能

Hook::exec。

展开全文

}

}

//钩子的定义

钩子类

private $ hooklist = null

//添加

公共功能添加(人)

$这个->;钩吻[] =新的$人;

}

//触发事件

公共函数exec{

foreach(这个->;作为$people的挂机列表){

$addon ->;行动;

}

}

}

//挂钩实现

class man{

公共职能法案

回声“not ONG”;

}

}

class WoMan {

公共职能法案

回声“哦,我的上帝”;

}

}

班级儿童

公共职能法案

回声“哦,我的上帝”;

}

}

$ball =新球;

$ ball->;向下;

$ ball->;做。

代码示例2: [/s2/]

//如果需要添加子代,可以添加子代钩子::添加(“子代”);

/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

钩子类

私人$挂钩列表;

//添加

功能添加(名称,$有趣){

$这个->;[]= $有趣;

}

函数excc($ name){

$ value = func _ get _ args

联合国索赔序号(价值[0]);

foreach(这个->;挂钩将[$name]列为$key = >;$有趣){

call _ user _ func _ array($fund,$value);

}

}

}

$挂钩=新挂钩;

$ hook->;添加(‘女性’,功能($msg){

回声“哦,我的上帝”。$ msg

})

$ hook->;添加(‘人’,功能($msg){

回声“没什么”。$ msg

})

//执行

$ hook->;exec(‘人’,‘涛哥’);

$ hook->;exec(' women ',' XXX ');回到搜狐看更多

负责任的编辑:

这里是分享代码,在后台添加

本文来源:中富彩如何注册购彩票

本文地址:https://caizhucequiz.cn/post/39.html

关注我们:微信搜索“xiaoqihvlove”添加我为好友

版权声明:如无特别注明,转载请注明本文地址!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。


站点地图60彩票 时时中彩票 金富豪彩票 六e彩票 ⑨⑨彩票 红钻彩票 rjdd.netfuyoudl.comchunshanyuan.com0598xy.comdlywxx.comwoaimeizi.comnimaboke.comlw-sh.com51.caiimage3.cnar.caipiaoke2020.cnanywhere.jiecaiba.cnoss.bellyule.cnp.26dkcaipiao.cn