PHP 第 0 行缓冲错误 <unknown>

PHP buffering error <unknown> in line 0

任何人都可以帮助我提供有关此错误的任何可能信息吗?原因?登录?去哪里 look/start?

 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 回调函数中报告运行时错误。相反,它必须默认为 Ouch that hurt

这样的一般错误

也许我们中的一个人应该将此报告为 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 都会产生无用的错误消息