PHP output buffering allows you to control when output is sent from a script. This is useful if you need to send headers after output has started or if content needs to be fully loaded before displaying. Output buffering works by buffering all output in memory instead of sending it immediately. You can then send the buffered output, modify it, or cache it for later. The main downside is that buffering consumes more memory, so scripts may run out of memory if large amounts of content are buffered.