php钩子使用场景

经常听说php钩子,但是一直没明白钩子使用场景,麻烦各位发表下自己的使用心得,我想学习学习

人到中年有点甜
浏览 644回答 6
6回答

UYOU

拉一个最直接的实例!! function test($on_start = null, $on_end = null) { if (is_callable($on_start)) { call_user_func($on_start); } //这里做其他事情 if (is_callable($on_end)) { call_user_func($on_end); } } //比如我有一个需求想获取到test函数的运行时长 $start_time = 0; $on_start = function() use($start_time) { $start_time = microtime(true); }; $on_end = function() use($start_time) { echo "test函数运行时间为:", microtime(true) - $start_time, "秒"; }; test($on_start, $on_end);

心有法竹

钩子(Hook)实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。-- 以上是搜的概念实际上钩子可以理解为“事件驱动”,当特定的事件到来的时候钩子函数接管处理,也就是说提前注册一些事件(称为钩子的挂载),当程序执行到挂载点的时候会按注册的规则来执行。
打开App,查看更多内容
随时随地看视频慕课网APP