PHP: что происходит после прекращения буферизации вывода

У меня есть код, который делает следующее:

<?php
ob_flush();
ob_start();
echo $something;
ob_end_flush();

echo $another_thing;
?>

Я вижу $something, но не $another_thing;

Согласно мануалу ob_end_flush() просто отключает буферизацию вывода, так что если это так, то почему я не вижу $another_thing; точно так же, как если бы я написал без буферизации вывода:

<?php
echo $something;
echo $another_thing;
?>

Хотя я не видел причин, по которым это должно работать, я решил попробовать вызвать flush() и ob_flush() после echo $another_thing;, но это тоже не помогло.

Каков правильный способ сделать это и почему вышеперечисленное не работает?

Спасибо


person ec2011    schedule 05.08.2013    source источник
comment
у меня работает phpfiddle.org/main/code/06s-kmj , возможно $another_thing пустой или непечатаемый?   -  person Orangepill    schedule 05.08.2013
comment
Спасибо - смотрите мой ответ ниже, оказывается, буферизация вывода не имеет к этому никакого отношения.   -  person ec2011    schedule 05.08.2013


Ответы (1)


Выяснилось, что проблема была в другом!

В ходе установки $something; выше я вызывал ряд функций в большом шаблоне, и где-то там был спрятан оператор exit, так что проблема не была связана с буферизацией вывода!

person ec2011    schedule 05.08.2013