まくまくPHPノート
変数のスコープについて
2012-12-24

PHP のスコープの基本

PHP のスコープには、 グローバルスコープローカルスコープ(関数内、メソッド内)があります。

$foo = 'AAA';  // グローバルスコープの変数を定義

function myfunc() {
    $bar = 'BBB';  // ローカルスコープの変数を定義
    global $foo;  // グローバル変数にアクセスする場合は global キーワードを使用する
}

ブロックスコープは存在しないため、for ループのブロック内で定義した変数などは、そのブロックを抜けた後もアクセス可能です。

スーパーグローバル変数

ローカルスコープからグローバル変数にアクセスするには、通常 global キーワードでの指定が必要ですが、スーパーグローバル変数と呼ばれているグローバル変数には、いつでも、どのスコープからでも参照できます。 スーパーグローバル変数には、以下のようなものがあります。

  • $GLOBALS
  • $_GET
  • $_POST
  • $_COOKIE
  • $_SESSION
  • $_ENV
2012-12-24