Php 如何在函数中返回函数(与echo相反)
因此,为了让这段代码正常工作,我需要通过返回而不是回音输出函数“get_flickr_rss”。。。我相信这段代码对我不起作用的原因是因为“get_flickr_rss”函数本身在某种程度上默认为echo而不是return。我如何调用函数来强制它返回而不是回音Php 如何在函数中返回函数(与echo相反),php,wordpress,api,Php,Wordpress,Api,因此,为了让这段代码正常工作,我需要通过返回而不是回音输出函数“get_flickr_rss”。。。我相信这段代码对我不起作用的原因是因为“get_flickr_rss”函数本身在某种程度上默认为echo而不是return。我如何调用函数来强制它返回而不是回音 function generate_flickr_rss($atts, $content = null) { // default parameters extract(shortcode_atts(array(
function generate_flickr_rss($atts, $content = null) {
// default parameters
extract(shortcode_atts(array(
'set' => '72157625809767439',
'photos' => '20'
), $atts));
// Call FLickrRSS Hook
return get_flickrRSS(array('set' => $set, 'num_items' => $photos, 'type' => 'set'));
}
我尝试使用下面的代码将其作为返回进行反向工程,但不幸的是,没有成功
function generate_flickr_rss($atts) {
// default parameters
extract(shortcode_atts(array(
'set' => '72157625809767439',
'photos' => '20'
), $atts));
// Call FLickrRSS Hook
$flickr_rss_return = get_flickrRSS(array('set' => $set, 'num_items' => $photos, 'type' => 'set'));
return $flickr_rss_return;
}
add_shortcode('flickr_rss', 'generate_flickr_rss');
add_shortcode('flickr_rss', 'generate_flickr_rss');
通过输出缓冲,您可以捕获函数的输出
ob_start();
get_flickrRSS(...);
return ob_get_clean();
当然,您应该更改函数以返回其输出,但我想这是不可能的,因为有一个原因。;-) 使用输出缓冲,您可以捕获函数的输出
ob_start();
get_flickrRSS(...);
return ob_get_clean();
当然,您应该更改函数以返回其输出,但我想这是不可能的,因为有一个原因。;-) 我看了一下WP插件,变化并没有那么大 在函数
printGallery
中,有许多echo
语句。将这些替换为将回显字符串连接到函数开头定义为空字符串的$result
变量的行
ob_start();
get_flickrRSS(...);
return ob_get_clean();
然后,在printGallery
函数的末尾返回$result
。然后,根据需要(由另一个输入参数定义)将get\u flickrss
修改为return
或echo
此字符串
当然,下一次更新插件时,所有这些都会被覆盖,因此我建议将插件编写者指向此堆栈溢出页面,并要求他修改插件以支持您的长期需求:)我查看了WP插件,但更改并不是很好 在函数
printGallery
中,有许多echo
语句。将这些替换为将回显字符串连接到函数开头定义为空字符串的$result
变量的行
ob_start();
get_flickrRSS(...);
return ob_get_clean();
然后,在printGallery
函数的末尾返回$result
。然后,根据需要(由另一个输入参数定义)将get\u flickrss
修改为return
或echo
此字符串
当然,所有这些都将在下次插件更新时被覆盖,因此我建议将插件编写器指向此堆栈溢出页面,并要求他修改插件以支持您的长期需求:)除非您更改get\u flickrRSS()…可能有一个标志参数使其返回而不是输出(或者您有权自己更改函数?)除非您更改get_flickrRSS(),否则无法对此执行任何操作…可能有一个标志参数使其返回而不是输出(或者您有权自己更改函数?)明白了!当StackOverflow允许我时,我会接受这个答案:)这是最后的手段,你可以复制一个get_flickrss(),调用它get_flickrss_return(),并将回音更改为return,这不会干扰使用该函数的任何其他内容,但不是idealGot!当StackOverflow允许我时,我会接受这个答案:)这是万不得已的办法,你可以复制一个get_flickrss(),调用它get_flickrss_return(),并将回音改为return,这不会干扰使用该函数的任何其他操作,但不一定感谢你的帮助!上面答案中的输出缓冲已经得到了解决。这并不理想,但这是您的电话,下面列出的备选方案感谢您的帮助!上面答案中的输出缓冲已经得到了解决。这并不理想,但这是您的要求,下面列出了备选方案。有人能解释为什么输出缓冲不理想吗?我希望有一流的代码,但不要冒着不断更新版本的风险。。。不值得,说得好。有人能解释为什么输出缓冲不理想吗?我希望有一流的代码,但不要冒着不断更新版本的风险。。。不值得。