PHP $GLOBALS

$GLOBALSはすべてのグローバル変数を含む配列です。

グローバル変数

グローバル変数とは、どのスコープからでもアクセス可能な変数です。

最も外側のスコープの変数は自動的にグローバル変数となり、関数の内部でも使用できます。

関数の内部でグローバル変数を使用するには、globalキーワードを使って明示的にグローバル変数であることを定義するか、$GLOBALS構文を使用します。


$x = 75;

function myfunction() {
  echo $GLOBALS['x'];
}

myfunction();

グローバル変数として参照する必要がないほかのプログラミング言語とは違い、$GLOBALとして宣言しなかった場合、何も取得されないか、エラーがでます。


$x = 75;

function myfunction() {
  echo $x;
}

myfunction();

また、globalキーワードを使用して関数内でグローバル変数を参照することもできます。


$x = 75;

function myfunction() {
  global $x;
  echo $x;
}

myfunction();

グローバル変数の作成

最も外側のスコープで作成された変数は、$GLOBALS構文を使用して作成されているかどうかに関わらず、グローバル変数となります。


$x = 100;

echo $GLOBALS["x"];
echo $x;

関数内で作成された変数はその関数にのみ属しますが、$GLOBALS構文を使用することで関数内でグローバル変数を作成することができます。


function myfunction() {
  $GLOBALS["x"] = 100;
}

myfunction();

echo $GLOBALS["x"];
echo $x;