"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
。这个故事的寓意,更深入地搜索我自己的代码,而不是将其归咎于框架中的错误...
我好像有鬼了。我正在加载一个页面(通常加载到另一个页面中,如果有帮助的话,但是当我自己加载页面时错误仍然出现)并且在输出的顶部,在其他一切之前,我得到一个随机 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
。这个故事的寓意,更深入地搜索我自己的代码,而不是将其归咎于框架中的错误...