В попытке сделать этот вопрос какой-то польза другим я резюмировать раздел комментариев в форму ответа.
Оказывается, что если вы сделаете ошибку кодирования в функции обратного вызова, используемой ob_start
он генерирует эти несколько бесполезных сообщения об ошибке
В тестировании я совершенно случайно сделал глупую ошибку при внесении изменений в Funtion обратного вызова, показанном на вопрошающем я закодированы
<?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
обратного вызова Funtion. Вместо этого он должен по умолчанию общей ошибки вдоль линий Ой, что больно
Может быть, один из нас должен сообщить об этом как PHP Bug
После некоторого более тестирования, это 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 производства сообщение об ошибке бесполезные
Некоторый код будет полезным – RiggsFolly
я understan d ваш подход, но в моем случае это абсолютно неуместно. Пример: 'ob_start (" test "); эхо "123"; ob_end_flush(); ' –
Итак, где ваша функция' test'? – RiggsFolly