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 — References all variables available in global scope
Opis
An associative array containing references to all variables which are currently defined in the global scope of the script. The variable names are the keys of the array.
Przykłady
Example #1 $GLOBALS example
<?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();
?>
Powyższy przykład wyświetli coś podobnego do:
$foo in global scope: Example content $foo in current scope: local variable
Notatki
Informacja: To jest zmienna 'superglobalna' lub automatycznie ustawiona na globalną. To po prostu oznacza, że jest dostępna w każdym miejscu skryptu. Nie jest konieczne użycie global $zmienna; aby mieć do niej dostęp w funkcjach i metodach.
Informacja: Variable availability
Unlike all of the other superglobals, $GLOBALS has essentially always been available in PHP.
$GLOBALS
Pyornide
16-Oct-2008 09:43
16-Oct-2008 09:43
ravenswd at yahoo dot com
12-Aug-2008 08:02
12-Aug-2008 08: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?"
