抑制函数可能产生的任何输出的最简单方法是什么?说我有这个:
function testFunc() {
echo 'Testing';
return true;
}
我想调用 testFunc() 并在页面中不显示“测试”的情况下获取其返回值。假设这将在输出其他内容的其他代码的上下文中,是否有这样做的好方法?也许弄乱了输出缓冲区?
抑制函数可能产生的任何输出的最简单方法是什么?说我有这个:
function testFunc() {
echo 'Testing';
return true;
}
我想调用 testFunc() 并在页面中不显示“测试”的情况下获取其返回值。假设这将在输出其他内容的其他代码的上下文中,是否有这样做的好方法?也许弄乱了输出缓冲区?
是的,弄乱输出缓冲区正是答案。只需在调用将输出的方法之前将其打开(不是函数本身,而是在调用它的位置,您可以将其包裹在整个脚本或脚本流中,但您可以通过仅使其尽可能“紧密”将它包装在方法的调用上):
function foo() {
echo "Flush!";
return true;
}
ob_start();
$a = foo();
ob_end_clean();
并且不生成任何输出。
是的,您在利用 PHP 的输出缓冲函数方面是正确的,即 ob_start 和 ob_end_clean(在 php.net 上查找它们):
<?php
function testFunc() {
echo 'Testing';
return true;
}
ob_start();
$output = testFunc();
ob_end_clean();
echo $output;
?>
对代码应用一些条件不是那么简单吗?
我的意思是如果变量=测试然后输出,否则不?
对于结果直接输出到浏览器(如 EVAL)的函数,您可以在 ob_start 中捕获结果。