"false" 出现在 ob_start() 旁边

"false" appearing next to ob_start()

我好像有鬼了。我正在加载一个页面(通常加载到另一个页面中,如果有帮助的话,但是当我自己加载页面时错误仍然出现)并且在输出的顶部,在其他一切之前,我得到一个随机 false.

$this->load->view('my_view');期间输出。我去调查了 CodeIgniter 系统文件,发现在 _ci_load($_ci_data) 方法中有一行 ob_start();。当我像这样围绕这段代码放置线条时:

echo "hey!";
ob_start();
echo "here!";

我得到的输出是hey!falsehere!

我发现可以阻止 false 输出的唯一方法是在代码中将另一个 ob_start() 放在它之前的某处。我摆弄过不同的位置,在控制器、视图、视图加载器和 CodeIgniter.php 本身。这是我发现它中断的地方:

// Is there a "remap" function? If so, we call it instead
if (method_exists($CI, '_remap'))
{
    $CI->_remap($method, array_slice($URI->rsegments, 2));
}

如果我在调用 _remap 之前放置 ob_start()false 就会消失;如果我之后把它放好,false 仍然会出现。

有人知道该怎么办吗?我知道这是一个非常困难和晦涩的问题,但我不知道下一步应该做什么。非常欢迎任何关于问题可能来自何处的建议。

我是 运行 PHP 5.4.30,使用 CodeIgniter 2.1.4(可能是时候更新了...)

事实证明,问题出在控制器调用的另一个模型调用的模型深处,当特定错误情况发生时,控制器正在输出 false。这个故事的寓意,更深入地搜索我自己的代码,而不是将其归咎于框架中的错误...