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 las variables disponibles en el ámbito global
Descripción
Una variable tipo array asociativo que contiene referencias a todas las variables que se encuentran definidas actualmente en el ámbito global del script. Los nombres de las variables son las claves de la matriz.
Ejemplos
Example #1 Ejemplo de $GLOBALS
<?php
function test() {
$foo = "variable local";
echo '$foo en el ámbito global: ' . $GLOBALS["foo"] . "\n";
echo '$foo en el ámbito actual: ' . $foo . "\n";
}
$foo = "Contenido de ejemplo";
test();
?>
El resultado del ejemplo seria algo similar a:
$foo en el ámbito global: Contenido de ejemplo $foo en el ámbito actual: variable local
Notes
Note: This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. There is no need to do global $variable; to access it within functions or methods.
Note: Disponibilidad de variables
A diferencia de todas las otras superglobales, $GLOBALS ha estado básicamente disponible siempre en PHP.
$GLOBALS
17-Oct-2008 12:43
12-Aug-2008 11: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?"
