抑制函数可能产生的任何输出的最简单方法是什么?说我有这个:
function testFunc() {
echo 'Testing';
return true;
}
我想调用testFunc()并获取其返回值,而不会在页面中显示“Testing”。假设这将是 输出其他东西的其他代码的上下文,有没有一个很好的方法来做到这一点?可能搞乱了输出缓冲区?
答案 0 :(得分:58)
是的,弄乱Output Buffer就是答案。只需在调用输出的方法之前打开它(不是函数本身,但是在你调用它的地方,你可以将它包装在你的整个脚本或脚本流程中,但是你可以尽可能地使它“紧密”将它包裹在方法调用周围):
function foo() {
echo "Flush!";
return true;
}
ob_start();
$a = foo();
ob_end_clean();
并且没有生成输出。
答案 1 :(得分:10)
答案 2 :(得分:3)
是的,你正在利用PHP的输出缓冲功能,即ob_start和ob_end_clean(在php.net上查找):
<?php
function testFunc() {
echo 'Testing';
return true;
}
ob_start();
$output = testFunc();
ob_end_clean();
echo $output;
?>
答案 3 :(得分:0)
是否像在代码中应用某些条件一样简单?
我的意思是如果变量=测试然后输出,否则不是吗?
对于具有直接向浏览器输出结果的函数,例如EVAL,您可以在ob_start中捕获结果。