Кто-нибудь будет любезен, чтобы помочь мне с любой возможной информацией об этой ошибке? причины? авторизоваться? где посмотреть / начать?
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()
функция.
Это породило ошибку
Неустранимая ошибка: Неизвестно: невозможно использовать буферизацию вывода в обработчиках отображения буферизации вывода в поле Неизвестно в строке 0
Таким образом, похоже, что PHP не может сообщить об ошибках во время выполнения в ob_start
функция обратного вызова. Вместо этого он должен по умолчанию использовать общую ошибку в соответствии с Ой, что больно
Может быть, один из нас должен сообщить об этом как ошибка PHP
После еще одного тестирования эта ошибка senario вызывает значительную ошибку в PHP 7.0.5
Примечание: использование неопределенной константы str — предполагается, что str в tst.php в строке 3
Фатальная ошибка: Uncaught Ошибка: вызов неопределенной функции replace () в tst.php: 3
так что теперь это можно исправить, но все предыдущие версии PHP, то есть 5.4 / 5.5 / 5.6, выдают бесполезное сообщение об ошибке
Других решений пока нет …