get return from echo
I'm working with some functions that echo
output. But I need their return
so I can use them in PHP.
This works (seemingly without a hitch) 开发者_如何学Pythonbut I wonder, is there a better way?
function getEcho( $function ) {
$getEcho = '';
ob_start();
$function;
$getEcho = ob_get_clean();
return $getEcho;
}
Example:
//some echo function
function myEcho() {
echo '1';
}
//use getEcho to store echo as variable
$myvar = getEcho(myEcho()); // '1'
no, the only way i can think of to "catch" echo-statements it to use output-buffering like you already do. i'm using a very similar function in my code:
function return_echo($func) {
ob_start();
$func;
return ob_get_clean();
}
it's just 2 lines shorter and does exactly the same.
Your first code is correct. Can be shortened though.
function getEcho($function) {
ob_start();
$function;
return ob_get_clean();
}
echo getEcho($function);
Your first piece of code is the only way.
Did you write these functions? You can go 3 ways:
- Using your wrapper to do capturing via output buffering.
- Extra set of functions calls, wordpress style, so that "somefunc()" does direct output, and "get_somefunc()" returns the output instead
- Add an extra parameter to the functions to signal if they should output or return, much like
print_r()'s
flag.
function getEcho() {
ob_start();
myEcho();
return ob_get_clean();
}
$myvar = getEcho();
精彩评论