PHP マニュアル
前のページ | 第 8 章 変数 | 次のページ

# 定義済みの変数

PHPは、実行する全てのスクリプトに定義済みの多くの変数を 提供します。しかし、これらの変数の多くは、 実行するサーバーの種類、サーバーのバージョンおよび設定、 その他の要素に依存しており、完全に記述することはできません。 これらの変数のいくつかは、PHPを コマンドライン で実行した場合には利用できません。 これらの変数の一覧については、 予約済みの定義済みの変数 のセクションを参照してください。

警告
PHP 4.2.0以降では、PHPディレクティブ register_globalsの デフォルト値がoffに変更されています。 これは、PHPにおける大きな変更です。 register_globalsをoffにすると、 グローバルスコープに定義済みの変数に影響を与えます。 例えば、`DOCUMENT_ROOT`を取得するには、 `$DOCUMENT_ROOT`のかわりに `$_SERVER['DOCUMENT_ROOT']`を使用することに なります。また、URL `http://www.example.com/test.php?id=3`から `$id`の代わりに`$_GET['id']`、 `$HOME`のかわりに`$_ENV['HOME']`を 使用します。 この変更に関する情報については、 register_globalsに関する設定 エントリ、セキュリティに関する章の register_globalsの使用、 また、4.1.0および 4.2.0の Release Announcementsを参照して下さい。 スーパーグローバル 配列のようなPHPの予約済みの定義済み変数を使用することが 推奨されます。

バージョン4.1.0以降、PHPに(使用する場合)Webサーバ、環境変数、 ユーザ入力からの変数を値とする定義済みの配列が追加されています。 これらの新しいは配列は、自動グローバル、すなわち、自動的に全ての スコープで利用可能です。このため、これらは、しばしば 'autoglobals' または 'superglobals' として知られています。 (PHPには、ユーザ定義のスーパーグローバルという機構はありません。) スーパーグローバルのリストを以下に示します。 しかし、これらの内容のリストおよび定義済みのPHP変数とそれらの特性に 関する更なる議論については、 定義済みの予約変数の セクションを参照してください。 より古い定義済みの変数(`$HTTP_*_VARS`)もまだ 存在します。

variables_orderに ある変数が設定されていない場合、これらに対応するPHPの定義済み 変数も空のままとなります。

PHP スーパーグローバル

$GLOBALS

  スクリプトのグローバルスコープの中で現在利用可能な全ての 変数へのリファレンスを含みます。この配列のキーは、グローバル 変数の名前です。 `$GLOBALS` は、PHP 3以降存在します。

$_SERVER

  Webサーバーまたはカレントのスクリプトの実行環境に直接関係する ものにより設定された変数。以前の(まだ利用可能ですが、推奨 されません) `$HTTP_SERVER_VARS`配列に 類似のものです。

$_GET

  HTTP GETによりスクリプトに入力された変数。以前の (まだ利用可能ですが、推奨されません) `$HTTP_GET_VARS`配列に類似のものです。

$_POST

  HTTP POSTによりスクリプトに入力された変数。以前の (まだ利用可能ですが、推奨されません) `$HTTP_POST_VARS`配列に類似のものです。

$_COOKIE

  HTTP Cookieによりスクリプトに入力された変数。以前の (まだ利用可能ですが、推奨されません) `$HTTP_COOKIE_VARS`配列に類似のものです。

$_FILES

  HTTP POSTファイルアップロードによりスクリプトに渡される変数。 以前の`$HTTP_POST_FILES`配列(まだ利用可能ですが、 推奨されません)と類似しています。詳細については、 POSTメソッド のアップロードを参照して下さい。

$_ENV

  環境によりスクリプトに指定される変数。 以前の`$HTTP_ENV_VARS`配列(まだ利用可能ですが、 推奨されません)と類似しています。

$_REQUEST

  ユーザ入力機構によりスクリプトに入力される全ての変数で、 このため、信頼することができません。この配列に含まれる 変数の存在と順番は、設定ディレクティブ variables_order に基づき定義されます。この配列は、4.1.0より前のバージョンのPHP には直接類似するものはありません。 import_request_variables()も参照してください。

  > 注意 コマンドライン で実行している場合、この変数には、 `argv` および `argc`エントリ は含まれません。これらは、`$_SERVER`配列には 存在します。

$_SESSION

  スクリプトのセッションに現在登録されている変数。 以前の`$HTTP_SESSION_VARS`配列(まだ利用可能ですが、 推奨されません)と類似しています。詳細については、 セッション処理関数 を参照ください。

前のページ | ホーム | 次のページ
変数 | 上に戻る | 変数のスコープ