PHPのスーパーグローバルな定義済み変数について

  • PHP
  • 現在地

スーパーグローバル

PHPにはいくつかの定義済みの変数が存在し、その中でも global 宣言無しで、すべてのスコープで利用可能(スーパーグローバル)な変数があります。

これらの変数は、リクエストやHTTPクッキー・サーバー環境などの情報が、スクリプト実行とともに連想配列の形式で格納されることになります。

連想配列なので、print_r() を使ってどんなキーを持っているか確認することができます。

参照できる情報と定義済みの変数

GETリクエスト
  • $_GET
  • $_REQUEST
  • $GLOBALS['_GET']
POSTリクエスト
  • $_POST
  • $_REQUEST
  • $GLOBALS['_POST']
クッキー(HTTP Cookie)
  • $_COOKIE
  • $_REQUEST
  • $GLOBALS['_COOKIE']
アップロードファイル情報
  • $_FILES
  • $GLOBALS['_FILES']
セッション
  • $_SESSION

    session_start() でセッションを開始・再開しない限り、参照しても未定義(Undefined variable)となります。

サーバー環境
  • $_SERVER
環境変数
  • $_ENV

$GLOBALSについて

$GLOBALSは、グローバルスコープで使用可能な全ての変数が格納され、変数名をキーとして参照することができます。

例えば $a という変数がある場合、$GLOBALS['a'] で参照可能です。

$_REQUESTについて

$_REQUESTは、$_GET, $_POST, $_COOKIE の内容を併せ持つ変数です。

ただし、$GLOBALSのように別々のキーで分けられている訳ではなく、同様のキー名をPOSTとクッキーで持っているような場合は、php.ini にある variables_order に設定された値の順より、優先された方を参照します。

スポンサードリンク

inserted by FC2 system