WordPress 中一行代码即可控制函数的输出并存到变量中

2023-04-13 09:58:48 浏览数 (1)

假设我们有个函数 echo_something,从名字即可知道,这个函数通过 echo 输出一些东西,如果这时候,我们希望不要输出,而是将结果存到某个变量中,这时候我们就要使用到 PHP 的输出缓存控制,一般来说是这样处理的:

代码语言:javascript复制
ob_start();

echo_something();

$var	= ob_get_clean();

这样做没什么问题,如果下次我们又有一个函数 echo_otherthing,然后又要通过输出缓存控制来处理,有点麻烦,所以我写了一个高阶函数,只要传递函数名和参数,程序就会自动获取输出的值:

代码语言:javascript复制
function wpjam_ob_get_contents($callback, ...$args){
	ob_start();

	call_user_func_array($callback, $args);

	return ob_get_clean();
}

调用的时候也非常简单,将函数出名传递给 wpjam_ob_get_contents 即可:

代码语言:javascript复制
wpjam_ob_get_contents('echo_something');

如果有参数:

代码语言:javascript复制
wpjam_ob_get_contents('echo_something', $arg1, $args2...);

该功能已经整合到 WPJAM Basic 插件中,并已免费提供下载,简单勾选或者设置下即可开启!

0 人点赞