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 — Съдържа референция към всички променливи, налични в глобалния обхват
Описание
Асоциативен масив, съдържащ референции към всички променливи, които текущо са дефинирани в глобалната област на действие на скрипта. Имената на променливите са ключове в масива.
Примери
Example #1 Пример с $GLOBALS
<?php
function test() {
$foo = "локална променлива";
echo '$foo в глобален обхват: ' . $GLOBALS["foo"] . "\n";
echo '$foo в текущия обхват: ' . $foo . "\n";
}
$foo = "Примерно съдържание";
test();
?>
Примерът по-горе ще изведе нещо подобно на:
$foo в глобален обхват: Примерно съдържание $foo в текущия обхват: локална променлива
Бележки
Забележка: Това е 'свръхглобална' или автоматично глобална променлива. Това просто означава, че тя е налична във всички обхвати навсякъде из скрипта. Не е нобходимо да правите global $variable;, за да я достъпвате от тялото на функции и методи.
Забележка: Наличност на променливата
За разлика от останалите свръхглобални, $GLOBALS винаги е била налична в PHP.
$GLOBALS
Pyornide
17-Oct-2008 12:43
17-Oct-2008 12:43
ravenswd at yahoo dot com
12-Aug-2008 11:02
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?"
