Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在函数中返回函数(与echo相反)_Php_Wordpress_Api - Fatal编程技术网

Php 如何在函数中返回函数(与echo相反)

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(

因此,为了让这段代码正常工作,我需要通过返回而不是回音输出函数“get_flickr_rss”。。。我相信这段代码对我不起作用的原因是因为“get_flickr_rss”函数本身在某种程度上默认为echo而不是return。我如何调用函数来强制它返回而不是回音

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,这不会干扰使用该函数的任何其他操作,但不一定感谢你的帮助!上面答案中的输出缓冲已经得到了解决。这并不理想,但这是您的电话,下面列出的备选方案感谢您的帮助!上面答案中的输出缓冲已经得到了解决。这并不理想,但这是您的要求,下面列出了备选方案。有人能解释为什么输出缓冲不理想吗?我希望有一流的代码,但不要冒着不断更新版本的风险。。。不值得,说得好。有人能解释为什么输出缓冲不理想吗?我希望有一流的代码,但不要冒着不断更新版本的风险。。。不值得。