经常听说php钩子,但是一直没明白钩子使用场景,麻烦各位发表下自己的使用心得,我想学习学习
6 回答
UYOU
TA贡献1878条经验 获得超4个赞
拉一个最直接的实例!!
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);
心有法竹
TA贡献1866条经验 获得超5个赞
钩子(Hook)实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
-- 以上是搜的概念
实际上钩子可以理解为“事件驱动”,当特定的事件到来的时候钩子函数接管处理,也就是说提前注册一些事件(称为钩子的挂载),当程序执行到挂载点的时候会按注册的规则来执行。
- 6 回答
- 0 关注
- 643 浏览
添加回答
举报
0/150
提交
取消