首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在php中向任何函数添加回调?

是否可以在php中向任何函数添加回调?
EN

Stack Overflow用户
提问于 2016-01-28 22:07:45
回答 2查看 114关注 0票数 0

我可以向php本机函数添加回调吗?

代码语言:javascript
复制
on('json_encode',function(){
    echo "encoding something";
});

如果是,是否可以添加一个帖子和预回调?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-28 22:11:52

不,你必须重写你自己的包装函数。类似于:

代码语言:javascript
复制
function my_json_encode($data) {
    if (function_exists("json_encode_pre_callback")) {
        json_encode_pre_callback();
    }
    $return = json_encode($data);
    if (function_exists("json_encode_post_callback")) {
        json_encode_post_callback($return);
    }
    return $return;
}

或者,使用回调作为参数:

代码语言:javascript
复制
function my_json_encode($data, $pre = null, $post = null) {
    if (is_callable($pre)) {
        $pre();
    }
    $return = json_encode($data);
    if (is_callable($post)) {
        $post($return);
    }
    return $return;
}

my_json_encode(
    $data,
    function(){echo "doing encode";},
    function($d){echo "done encode, value 1 is $d[1]";}
)
票数 6
EN

Stack Overflow用户

发布于 2016-01-28 22:26:48

不,最好的方法是调用PHP本机函数的用户定义函数。

尽管,您可以使用override_function (请参阅docs 这里)重新定义PHP本机函数,但是请注意,apd扩展是不再维护

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35073045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档