PHP Str_replace用于echo函数

时间:2011-12-14 14:00:41

标签: php function echo str-replace

以下函数是写入插件核心的代码的一部分我是逆向工程。它的问题是我需要对它执行str_replace而我不能,因为它已经设置为echo。

功能是。

function similar_posts($args = '') {
    echo SimilarPosts::execute($args);
}

我使用similar_posts()在我的页面中调用它,但我在主题中真正需要做的是调用$related = similar_posts(),但该函数设置为echo。我该如何改变呢。

我试过了。

 function get_similar_posts($args = '') {
        SimilarPosts::execute($args);
    }

但这并没有产生任何结果。

6 个答案:

答案 0 :(得分:3)

function get_similar_posts($args = '') {
    return (SimilarPosts::execute($args));
}

答案 1 :(得分:2)

使用return代替echo。

所以你有:

 return SimilarPosts::execute($args);

而不是:

 echo SimilarPosts::execute($args);

答案 2 :(得分:2)

如果您想使用SimilarPosts::execute ($args)次返回值,则需要在get_similar_posts内使用关键字“return”。

function get_similar_posts ($args = '') {
  return SimilarPosts::execute($args);
}

如果您无法更改get_similar_posts的定义,即使它已设置为“回显”,也有办法抢夺similar_posts打印的内容。

这可以通过使用PHP中提供的Output Control Functions来实现。

function echo_hello_world () {
  echo "hello world";
}

$printed_data = ""; 

ob_start (); 
{
  echo_hello_world (); 

  $printed_data = ob_get_contents (); 
}
ob_end_clean (); 

echo "echo_hello_world () printed '$printed_data'\n";

输出

echo_hello_world () printed 'hello world'

答案 3 :(得分:1)

将函数包含在使用output buffering.

的另一个函数中

答案 4 :(得分:1)

完成它..

function get_similar_posts($args = '') {
    return SimilarPosts::execute($args);
}

并在页面get_similar_posts();

应该想到这一点。

答案 5 :(得分:1)

来自函数的

return

function get_similar_posts($args = '') {
     return  SimilarPosts::execute($args);
}