On Fri, 2007-12-21 at 12:35 -0600, Philip Thompson wrote: > On Dec 20, 2007, at 11:24 AM, Sancar Saran wrote: > > > Hello All, > > > > Thanks for joining the conversation. It seems there where no real > > technical > > dead end for using $GLOBALS directly. > > Using $GLOBALS directly very similar to coding standarts. It just up > > to you. > > > > Also I try explain my enviroment a liddle bit. > > > > First of all my function declarationgs gonna like this > > > > // Set Shorcut Variables > > $arrConf = &$GLOBALS['_LIVE']['_CONF']; > > $arrStat = &$GLOBALS['_LIVE']['_STAT']; > > $arrDomSet = &$GLOBALS['_LIVE']['_DOMN'][$GLOBALS['_LIVE']['_STAT'] > > ['curDom']] > > ['settings']; > > $arrLang = &$GLOBALS['_LIVE']['_LANG'][$arrStat['language']]; > > $rootDir = &$arrConf['rootDir']; > > $webDir = &$arrConf['webDir']; > > $arrDb = &$arrConf['_DB']; > > $arrDbg = &$GLOBALS['_LIVE']['_DEBG']; > > Why are you using references to the $GLOBALS? If they're global, then > there's only 1 instance/reference to it. Seems needless... Here's why: <?php $GLOBALS['myProject']['foo'] = 10; function aFunction() { $foo = $GLOBALS['myProject']['foo']; echo "Foo: $foo\n"; $foo--; } function anotherFunction() { $foo = $GLOBALS['myProject']['foo']; echo "Foo: $foo\n"; $foo--; } aFunction(); anotherFunction(); print_r( $GLOBALS['myProject'] ); ?> When in fact, almost assuredly the following was desired: <?php $GLOBALS['myProject']['foo'] = 10; function aFunction() { $foo = &$GLOBALS['myProject']['foo']; echo "Foo: $foo\n"; $foo--; } function anotherFunction() { $foo = &$GLOBALS['myProject']['foo']; echo "Foo: $foo\n"; $foo--; } aFunction(); anotherFunction(); print_r( $GLOBALS['myProject'] ); ?> Personally, I think $GLOBALS is a great location for project configurations but I think it's necessary to use a second level for the configuration and first level defines a space for your project. In this way you're much less likely to run into variable clobbering issues. This is why I used 'myProject' as the first level key in the above example. Some purists out there will misguidedly say that nothing belongs in the global space; however, they are wrong since function and class definitions fall into global space and as such the solution is equivalent to stuffing all your config vars into a class or function. That said, I think use of the global space shouldn't be ad-hoc and sloppy. Cheers, Rob. -- ........................................................... SwarmBuy.com - http://www.swarmbuy.com Leveraging the buying power of the masses! ........................................................... -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php