PHP Str_replace для функции эха - PullRequest
1 голос
/ 14 декабря 2011

Следующая функция является частью кода, записанного в ядре плагина. Я выполняю обратный инжиниринг.Проблема в том, что мне нужно сделать на нем str_replace, и я не могу, потому что он уже настроен на эхо.

Функция:.

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

Я вызываю ее на своих страницахиспользуя similar_posts(), но что мне действительно нужно сделать в моей теме, так это вызвать $related = similar_posts(), однако эта функция установлена ​​на echo.Как мне это изменить.

Я пробовал это.

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

Но это не дало никаких результатов.

Ответы [ 6 ]

3 голосов
/ 14 декабря 2011
function get_similar_posts($args = '') {
    return (SimilarPosts::execute($args));
}
2 голосов
/ 14 декабря 2011

Если вы хотите использовать возвращаемое значение SimilarPosts::execute ($args), вам нужно будет использовать ключевое слово return в вашем get_similar_posts.

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

Если вы не можете изменитьВ определении get_similar_posts есть способы перехватить содержимое, напечатанное с помощью similar_posts, даже если оно «установлено на эхо».

Это может быть достигнуто с помощью доступных функций управления выводом в PHP.

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'
2 голосов
/ 14 декабря 2011

Используйте return вместо эха.

Так что у вас есть:

 return SimilarPosts::execute($args);

вместо:

 echo SimilarPosts::execute($args);
1 голос
/ 14 декабря 2011

return от функции:

function get_similar_posts($args = '') {
     return  SimilarPosts::execute($args);
}
1 голос
/ 14 декабря 2011

Готово ..

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

и на странице get_similar_posts();

Надо было подумать об этом.

1 голос
/ 14 декабря 2011

Оберните функцию внутри другой, в которой вы используете выходную буферизацию.

...