I strongly recommend against using globals at all possible. It's a bad programming practice, and you're better off using references and passing them on construct to use them in the $this context. If you're worried about parameters, you can simply use an associative array to store any passed variables to it. Overall, the main idea is to avoid using globals.
http://www.phpit.net/article/using-globals-php/
Is a good article detailing other reasons why using the global scope is a very bad idea.
$GLOBALS
$GLOBALS — Referencia todas variáveis disponíveis no escopo global
Descrição
Um array associativo contendo referências para todas as variáveis que estão atualmente definidas no escopo global do script. O nome das variáveis são chaves do array.
Exemplos
Exemplo #1 Exemplo da $GLOBALS
<?php
function test() {
$foo = "local variable";
echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n";
echo '$foo in current scope: ' . $foo . "\n";
}
$foo = "Example content";
test();
?>
O exemplo acima irá imprimir algo similar a:
$foo in global scope: Example content $foo in current scope: local variable
Notas
Nota: Esta é uma 'superglobal', ou global automática, variável. Isto simplismente significa que ela está disponível em todos escopos pelo script. Não há necessidade de fazer global $variable; para acessá-la dentro de uma função ou método.
Nota: Disponibilidade da variável
Diferente de todas as outras superglobais, $GLOBALS tem essencialmente sempre estado disponível no PHP.
User Contributed Notes
$GLOBALS
$GLOBALS
Pyornide
16-Oct-2008 06:43
16-Oct-2008 06:43
ravenswd at yahoo dot com
12-Aug-2008 05:02
12-Aug-2008 05:02
Keep in mind that $GLOBALS is, itself, a global variable. So code like this won't work:
<?php
print '$GLOBALS = ' . var_export($GLOBALS, true) . "\n";
?>
This results in the error message: "Nesting level too deep - recursive dependency?"

Superglobais