PHP: Могу ли я подавить вывод функции? - PullRequest
1 голос
/ 21 июня 2011

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

Я пытался:

if( function_name() ) {

}

$name = function_name();

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

Ответы [ 2 ]

8 голосов
/ 21 июня 2011

Да. Это можно сделать так:

ob_start();
if (function_name()) { }
else {}

// then you can do one of the following
ob_end_clean(); // in case you want to suppress function_name output
ob_flush(); // in case you don't want to suppress function_name output

Посмотрите здесь для получения дополнительной информации о функциях управления выходом.

Кроме того, вместо использования ob_flush и ob_end_clean вы можете использовать ob_get_clean.

0 голосов
/ 21 июня 2011

Сначала запишите выходные данные и возвращаемое значение функции.

ob_start();
$name = function_name();
$output = ob_get_clean();

Далее решите, хотите ли вы выводить его.

if ($name !== false) {
    echo $output;
}

Вы не поняли, что вы хотели бы сделать с возвращаемым значением, если оно не было false или было на самом деле выводом функции, которую вы хотели отправить на страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...