ob_start() 看不到过去的变量

ob_start() does not see the variables of the past

我有问题。即代码:

$config = [
    'db' => '...',
    'root' => '...',
    ...
]

ob_start();
foreach ($files as $file) {
    include $file;
}
$output = ob_get_contents();
ob_end_clean();

我使用输出缓冲并在最后显示结果。问题是包含的文件没有看到 $config.

如何让我的 OUTPUT BUFFERING 看到它之前的内容,而不在缓冲区中添加 $config?

有什么想法吗? (感谢)

看来您对错误的因果关系有误。您可以通过将 $config 放入缓冲区来验证它是否已经存在。

因为你没有分享包含文件的内容,我无法告诉你你的变量消失到哪里了,但我可以向你保证它在那个文件的处理过程中就在那里。它也在那里,这可以通过 var_dump($config) 在缓冲区内部或缓冲区之后的任何时候进行验证。