我不认为我理解 PHP 输出缓冲的工作原理足以知道这是否可能:我想按以下顺序执行以下操作:
- 声明一个 PHP 变量 $foo
- 开始和结束输出缓冲区以声明变量 $bar
- 使用变量 $foo
当我第二次尝试使用 $foo 时,似乎我无意中清除了它。
代码示例:
<?php
$foo = 'some value';
ob_start();
include('some_file.php');
//I want to use output buffering since some_file.php has a number of echo statements that I want to concatenate into one variable. Maybe there's a better way?
$bar = ob_get_clean();
ob_end_flush();
echo $bar;
echo $foo;
?>
在上面的示例中,$bar 工作正常,但 $foo 最后未定义。我认为我对基本概念的理解不够透彻,无法确切知道此处代码中发生了什么。我希望能够使用缓冲区(或其他方法?)使 some_file.php 中的所有 echo 语句转到单个字符串,同时保留以前 PHP 代码中的变量。有没有办法做到这一点?