Пример #1
0
function inner()
{
    $buf = new \Buffering\Output();
    echo "Этот текст попадет в буфер.";
    return "<b>{$buf->__toString()}</b>";
    // Не нужно заботиться о ручном вызове ob_end_clean() -
    // это автоматически делает деструктор объекта $buf!
}
Пример #2
0
<?php

## Корректность \Buffering\Output::__toString().
spl_autoload_register();
// Перехватываем выходной поток в программе.
$h1 = new \Buffering\Output();
// Выводим некоторый текст.
echo "Текст в первом буфере.";
// Еще раз перехватываем выходной поток (вложенным образом).
$h2 = new \Buffering\Output();
// Выводим другой текст текст.
echo "Текст во втором буфере.";
// Теперь сохраняем в переменных, что было накоплено в буферах.
$first = $h1->__toString();
$second = $h2->__toString();
// Уничтожаем второй буфер.
$h2 = null;
// Уничтожаем первый буфер.
$h1 = null;
// Выводим сохраненный ранее текст.
echo "1: {$first}<br />";
echo "2: {$second}<br />";