Reusing buffers

void ob_flush ( void )

void ob_clean ( void )

The functions ob_end_flush() and ob_end_clean() are complemented by ob_flush() and ob_clean() - these do the same jobs as their longer cousins, with the difference that they do not end the output buffer. We could rewrite the previous script like this:

<?php
    ob_start();
    print "Hello First!\n";
    ob_flush();
    print "Hello Second!\n";
    ob_clean();
    print "Hello Third!\n";
?>

This time the buffer is flushed but left open, then cleaned and still left open, and finally automatically closed and flushed by PHP as the script ends - this saves creating and destroying output buffers. Reusing buffers like this is about 60% faster than opening and closing buffers all the time, and is a smart move if you ever find yourself in this situation.

 

Want to learn PHP 7?

Hacking with PHP has been fully updated for PHP 7, and is now available as a downloadable PDF. Get over 1200 pages of hands-on PHP learning today!

If this was helpful, please take a moment to tell others about Hacking with PHP by tweeting about it!

Next chapter: Stacking buffers >>

Previous chapter: Getting started

Jump to:

 

Home: Table of Contents

Copyright ©2015 Paul Hudson. Follow me: @twostraws.