为了账号安全,请及时绑定邮箱和手机立即绑定

php钩子使用场景

php钩子使用场景

PHP
人到中年有点甜 2019-03-06 01:41:25
经常听说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);
查看完整回答
反对 回复 2019-03-18
?
心有法竹

TA贡献1866条经验 获得超5个赞

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

查看完整回答
反对 回复 2019-03-18
  • 6 回答
  • 0 关注
  • 643 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信