我可以向php本机函数添加回调吗?
on('json_encode',function(){
echo "encoding something";
});如果是,是否可以添加一个帖子和预回调?谢谢。
发布于 2016-01-28 22:11:52
不,你必须重写你自己的包装函数。类似于:
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;
}或者,使用回调作为参数:
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]";}
)发布于 2016-01-28 22:26:48
不,最好的方法是调用PHP本机函数的用户定义函数。
尽管,您可以使用override_function (请参阅docs 这里)重新定义PHP本机函数,但是请注意,apd扩展是不再维护。
https://stackoverflow.com/questions/35073045
复制相似问题