php专区

 首页 > php专区 > PHP进阶 > 算法 > PHP中的钩子是什么,怎么理解它?

PHP中的钩子是什么,怎么理解它?

分享到:
【字体:

细说php - http://www.xishuophp.com/

PHP 写插件 其中的HOOK 只是别人想的一个词语,术语而已 并无实际意义 在WINDOWS编程中 HOOK==钩子 

是一种消息机制的一种 意思就是:蚊子叮了你一口,你的大脑神经接收到了,于是指挥肢体,去赶走还是拍死这个蚊子 这个大脑神经就是HOOK,系统接收用户操作,而HOOK则监视某一满足条件 用户输入A ,系统接收到A,而HOOK定义接收B,那么输入A,则不做操作 当输入B了,则激活HOOK,进行执行制定代码 PHP的插件HOOK,比如你添加一个插件,把这个插件信息提前告诉HOOK,然后HOOK去监视用户 当用户调用这个插件,HOOK就感知到了 于是就把插件功能实现出来 假如有这么一段程序: function fun(){ fun1(); fun2(); } 首先程序执行完fun1()之后执行fun2()然后fun()结束。 

但是,假如我们想对函数做一些变化。比如说,fun是一个解析函数,我们希望后期可以提供丰富的解析函数,而究竟用哪个函数解析,我们希望在配置文件中配置。这个时候就可以发挥钩子的力量了。 

我们可以在function fun(){}中加入一个挂钩点H,然后再执行H这个函数之前,将钩子函数配置好,我么就可以根据需要来解析了。 例如: $h=config_item("parser_fun") ;//从配置文件中获得相应的配置信息 function fun($data){ global $h; return $h(); } 除此意外,PHP还可以根据字符串提供自己的类,然后调用类的一个方法,传递某些参数,这些就为PHP程序的编写,以及后期的维护扩展奠定了,相当坚实的基础。 

类的实现方法,大致如下: $c=get_class_name(); //获得类的名字 $m=get_method_name(); //获得方法的名字 $k=$c->$m(); //执行类的某一个方法 个人感觉钩子完整实现应该叫做事件驱动,或者事件触发器,当监听到某个事件的时候触发某个事件

分享到:
分享一个用php写的人民币数字转人民币大...
有时候我们需要在应用程序中使用随机生成用户名和密码,这样可以大大提高应用程序的安全,在PHP中生成随机用户名和密码可以使用 mt_rand 函数或者是 rand 函数, rand 函数在验证码中的应用多一些,而生成长字符的随机码一般都需要 mt_rand 函数。 使用PHP生成随机数可以应用在许多地方,比如可以设计程序的随机密码、...
基于左右值的无限分类算法
基于左右值的无限分类算法,php,由于之前采用的递归排序无限分类方法感觉不是很理想,于是参考了国外同国内的左右值排序相关方法,自己写了一个基于左右值的无限分类类,欢迎大家测试 演示地址 http://www.mengsa.cn/SortTest.php 请大家测试 另外还有用到一个mysql操作类,由于不是原创就不提供了,如果需要的可以PM我 ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……