PHP: Suppress output within a function? PHP: Suppress output within a function? php php

PHP: Suppress output within a function?


Yes, messing with the Output Buffer is exactly the answer. Just turn it on before you call your method that would output (not the function itself, but where you call it, you could wrap it around your whole script or the script flow, but you can make it as "tight" as possible by just wrapping it around the call of the method):

function foo() {  echo "Flush!";  return true;}ob_start();$a = foo();ob_end_clean();

And no output is generated.


Here you go:

ob_start();testFunc();ob_end_clean();

"ob" stands for "output buffering", take a look at the manual pages here: http://www.php.net/outcontrol


Yes you are on the right track as to leveraging PHP's output buffering functions, i.e. ob_start and ob_end_clean (look them up on php.net):

<?php  function testFunc() {    echo 'Testing';    return true;  }    ob_start();    $output = testFunc();    ob_end_clean();    echo $output;?>