Узнайте, есть ли функция с выходом php

Быстрый для вас, ребята.

Скажем, у меня есть функция, которая выводит строку:

function myString() { echo 'Hello World'; } 

Как мне пройти тестирование, чтобы проверить, выводит ли функция какие-либо данные?

 if(myString() ==''){ echo ''Empty function; } 

Использование функций выходного буфера:

 function testFunctionOutput($f, $p = array()){ ob_start(); call_user_func_array($f, $p); $s = ob_get_contents(); ob_end_flush(); return (bool)($s !== ''); } 

Так сказать …

 function testa(){ echo 'test'; } function testb($b){ $i = 20 * $b; return $i; } var_dump(testFunctionOutput('testa')); var_dump(testFunctionOutput('testb', array(10))); 

Альтернативная версия, предложенная Феликс:

 function testFunctionOutput2($f, $p = array()){ ob_start(); call_user_func_array($f, $p); $l = ob_get_length(); ob_end_clean(); return (bool)($l > 0); } 

Обычно, если функция возвращает данные, она будет делать это в операторе return .

как в

 function myString() { $striing = 'hello'; return $string; } 

Чтобы проверить это, просто вызовите функцию и посмотрите, что она возвращает.

Если вы спрашиваете, будет ли что-то написано для вывода, как указано ниже в CT … Вам нужно будет сделать что-то вроде этого:

 //first turn out the output buffer so that things are written to a buffer ob_start(); //call function you want to test... output get put in buffer. mystring(); //put contents of buffer in a variable and test that variable $string = ob_get_contents(); //end output buffer ob_end() //test the string and do something... if (!empty($string)) { //or whatever you need here. echo 'outputs to output' } 

Вы можете узнать намного больше по адресу http://php.net/manual/en/function.ob-start.php

Извините, я не понял этот вопрос. Выходной BUffer должен быть способом, как объяснил thephpdeveloper.

—НЕ ИМЕЕТ ЗНАЧЕНИЯ—

 if(!myString()){ echo 'Empty function'; } 

будет echo 'Empty Function', когда myString возвращает значение, которое может быть оценено в false IE: o, false, null, "" и т. д. …

 if(myString() === NULL){ echo 'Empty function'; } 

Будет напечатано только «Empty Function», когда нет возвращаемого значения.