Io credo invece che anche il problema si verifica comunque in quanto l'output viene inviato comunque prima dell'header. Con il buffering puoi risolvere questi problemi e inserire funzioni di output dove ti pare.Richiamando il codice da un file a parte questo problema non si verifica.