downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

$_SERVER> <Superglobals
[edit] Last updated: Sat, 07 Jan 2012

view this page in

$GLOBALS

(PHP 4, PHP 5)

$GLOBALSReferences all variables available in global scope

설명

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.

예제

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();
?>

위 예제의 출력 예시:

$foo in global scope: Example content
$foo in current scope: local variable

주의

Note:

이는 '자동전역' 변수입니다. 스크립트의 모든 영역에서 사용할 수 있습니다. 함수나 메쏘드 안에서 접근하기 위해서 global $variable;를 할 필요가 없습니다.

Note: Variable availability

Unlike all of the other superglobals, $GLOBALS has essentially always been available in PHP.



$_SERVER> <Superglobals
[edit] Last updated: Sat, 07 Jan 2012
 
add a note add a note User Contributed Notes $GLOBALS
Gratcy 13-May-2012 07:03
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)

*/
?>
therandshow at gmail dot com 29-Jun-2011 06: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 28-Jul-2009 03: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 05:47
Though you can use var_dump to output the value of $GLOBALS.
ravenswd at yahoo dot com 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?"

 
show source | credits | stats | sitemap | contact | advertising | mirror sites