Escopo e variáveis super poderosas
Variáveis globais são aquelas definidas na raiz do script, fora de qualquer outro escopo, e que não existem dentro de uma função ou método, da mesma forma que variáveis criadas em um desses escopos deixarão de existir fora dele.
As variáveis superglobais, entretanto, podem ser acessadas em qualquer escopo, e são elas $GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIE, $_FILES, $_ENV, $_REQUEST e $_SESSION. Acontece que não é possível definir uma outra variável como superglobal (ao menos não sem o uso da Runkit), e aí a confusão começa.
Headers sent e a canonização do ob_start
Eu considero o ano de 2004 como sendo o ápice da quantidade de dúvidas sobre a mensagem Headers already sent, quando era comum muitos usuários perguntarem a solução diariamente no IRC. Um saco. Ainda hoje o Google retorna quase 2 milhões de resultados para esse termo, e a maioria deles como sendo erros legítimos que o crawler encontrou enquanto navegava.




