this is technique that i always did for configuration file..
<?php
$conf['conf']['foo'] = 'this is foo';
$conf['conf']['bar'] = 'this is bar';
function foobar() {
global $conf;
var_dump($conf);
}
foobar();
/*
result is..
array
'conf' =>
array
'foo' => string 'this is foo' (length=11)
'bar' => string 'this is bar' (length=11)
*/
?>
$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.
Gratcy
14-May-2012 04:03
therandshow at gmail dot com
29-Jun-2011 03:32
As of PHP 5.4 $GLOBALS is now initialized just-in-time. This means there now is an advantage to not use the $GLOBALS variable as you can avoid the overhead of initializing it. How much of an advantage that is I'm not sure, but I've never liked $GLOBALS much anyways.
williams at 3cisd dot com
29-Jul-2009 12:53
Better yet, use print_r. While var_dump does detect the recursion that var_export fails on, it seems to recurse one level first for my setup. So var_dump ends up printing all globals twice, but print_r prints them only once since it detects the recursion right away. Serialize seems to not detect the recursion at all either, similar to var_export.
David
14-Aug-2008 02:47
Though you can use var_dump to output the value of $GLOBALS.
ravenswd at yahoo dot com
12-Aug-2008 10: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?"
