有人会帮助我提供有关此错误的任何可能信息吗?原因?登录?在哪里寻找/开始?
Cannot use output buffering in output buffering display handlers in <**Unknown**> on line **0**
示例代码:
function test($b) { return _strrev($b); }
ob_start("test");
echo "123";
ob_end_flush();
信息:
谢谢
最佳答案
为了使这个问题对其他人有用,我将以答案的形式总结评论部分。
事实证明,如果在ob_start
使用的回调函数中发生编码错误,则会生成此无用的错误消息
在测试中,我在修改发问者显示的回调函数时无意中犯了一个愚蠢的错误,
<?php
function test($b) {
return str-replace('2', 'XXX', $b);
}
ob_start("test");
echo "123";
ob_end_flush();
请注意str_replace()
函数的拼写错误。这产生了错误
Fatal error: Unknown: Cannot use output buffering in output buffering display handlers in Unknown on line 0
因此,似乎PHP无法通过
ob_start
回调函数报告运行时错误。相反,它必须默认为类似于的一般错误,这会伤害也许我们其中一位应该将其报告为PHP错误
经过更多测试后,此错误Senario在PHP 7.0.5中产生了有意义的错误
Notice: Use of undefined constant str - assumed 'str' in tst.php on line 3
Fatal error: Uncaught Error: Call to undefined function replace() in tst.php:3
因此现在可以解决此问题,但是所有以前的PHP版本(即5.4/5.5/5.6)都会产生无用的错误消息
关于php - 第0行的PHP缓冲错误<未知>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36610608/