Quello che hai scritto è vero ma ti potrebbe capitare di dover inviare a output prima di header. Ti consiglio di vedere le funzioni
codice:
Ob_start()
Ob_end_flush()