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

search for in the

$_SERVER> <スーパーグローバル
Last updated: Fri, 13 Nov 2009

view this page in

$GLOBALS

$GLOBALSグローバルスコープで使用可能なすべての変数への参照

説明

スクリプトのグローバルスコープに現在定義されているすべての変数への参照を含む連想配列です。 変数名が配列のキーとなります。

例1 $GLOBALS の例

<?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

注意

注意: これは 'スーパーグローバル' あるいは自動グローバル変数と呼ばれるものです。 スクリプト全体を通してすべてのスコープで使用することができます。 関数やメソッドの内部で使用する場合にも global $variable; とする必要はありません。

注意: 変数の可用性
他のスーパーグローバル とは異なり、$GLOBALS は PHP で常に使用可能です。



$_SERVER> <スーパーグローバル
Last updated: Fri, 13 Nov 2009
 
add a note add a note User Contributed Notes
$GLOBALS
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?"

$_SERVER> <スーパーグローバル
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites