PHPにおけるglobalと$GLOBALSの違い

1039 ワード

コンセプト
単一のglobal であり、通常は のために変数の前に付加される.$GLOBALSは予め定義された で、変数を中に投げ込むと同じようにグローバルに持ち込むことができます.$GLOBALSは関連配列であり、各変数は要素であり、キー名は変数名に対応し、値は変数の内容に対応する.$GLOBALSがグローバル範囲内に存在するのは、$GLOBALSが超グローバル変数であるためである.
詳細:PHPがグローバル変数を解放する際の注意事項
global $var :
$GLOBALS['var'] :
$a = 100;
function one(){
    global $a;
    unset($a);
}

one();
echo $a;

//    100

/*******************************/

$a = 100;
function two(){
    unset($GLOBALS['a']);
}

two();
echo $a;

//    Notice: Undefined variable: a


global $var;は、$var = &$GLOBALS['var'];が関数内でグローバル変数を解放することに等価であり、unset($GLOBALS['var']);であり、そうではない:global $var; unset($var);