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 — Référence toutes les variables disponibles dans un contexte global
Description
Un tableau associatif contenant les références sur toutes les variables globales actuellement définies dans le contexte d'exécution global du script. Les noms des variables sont les index du tableau.
Exemples
Exemple #1 Exemple avec $GLOBALS
<?php
function test() {
$foo = "variable locale";
echo '$foo dans le contexte global : ' . $GLOBALS["foo"] . "\n";
echo '$foo dans le contexte courant : ' . $foo . "\n";
}
$foo = "Exemple de contenu";
test();
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
$foo dans le contexte global : Exemple de contenu $foo dans le contexte courant : variable locale
Notes
Note: Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas nécessaire de faire global $variable; pour y accéder dans les fonctions ou les méthodes.
Note: Disponibilité des variables
Contrairement à toutes les autres superglobales, $GLOBALS a toujours été disponible en PHP.
$GLOBALS
16-Oct-2008 02:43
12-Aug-2008 01: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?"
