假设我们有个函数 echo_something
,从名字即可知道,这个函数通过 echo 输出一些东西,如果这时候,我们希望不要输出,而是将结果存到某个变量中,这时候我们就要使用到 PHP 的输出缓存控制,一般来说是这样处理的:
ob_start();
echo_something();
$var = ob_get_clean();
这样做没什么问题,如果下次我们又有一个函数 echo_otherthing
,然后又要通过输出缓存控制来处理,有点麻烦,所以我写了一个高阶函数,只要传递函数名和参数,程序就会自动获取输出的值:
function wpjam_ob_get_contents($callback, ...$args){
ob_start();
call_user_func_array($callback, $args);
return ob_get_clean();
}
调用的时候也非常简单,将函数出名传递给 wpjam_ob_get_contents
即可:
wpjam_ob_get_contents('echo_something');
如果有参数:
wpjam_ob_get_contents('echo_something', $arg1, $args2...);
该功能已经整合到 WPJAM Basic 插件中,并已免费提供下载,简单勾选或者设置下即可开启!