我有一个名为test.php的PHP文件,其中包含以下代码。
<?php
$text = 'Grrrrr';
ob_start();
require_once('testinc.php');
$html2 = ob_get_clean();
echo '<pre>';
var_dump($html2);
echo '</pre>';
$text = 'wtf';
ob_start();
require_once('testinc.php');
$html2 = ob_get_clean();
echo '<pre>';
var_dump($html2);
echo '</pre>';
testing('blah');
testing('123');
function testing($text) {
ob_start();
require_once('testinc.php');
$html = ob_get_clean();
echo '<pre>';
var_dump($html);
echo '</pre>';
}
testinc.php文件包含以下代码。
<?php
echo $text;
?>
testing
当我运行代码时,输出看起来像这样。
string(13) "Grrrrrtesting"
string(0) ""
string(0) ""
string(0) ""
为什么缓冲区不能在第一次以外工作?如何才能使输出看起来像这样?
string(13) "Grrrrrtesting"
string(10) "wtftesting"
string(11) "blahtesting"
string(10) "123testing"
答案 0 :(得分:0)
解决方案是不使用require_once()。将代码更改为include(),一切正常。