|
|||||||
|
|
定義済の変数PHP 4.1.0 以降、 外部から来る変数 を取得するのに推奨される方法は以下に述べるスーパーグローバルを 用いることです。それまでは、 register_globals または定義済みのPHP配列($HTTP_*_VARS)に 依存していました。 PHP 5.0.0以降、PHPの長い 定義済みの変数 配列はregister_long_arrays ディレクティブにより無効にすることができます。 サーバ変数: $_SERVER
$_SERVER は、ヘッダ、パス、スクリプトの位置の ような情報を有する配列です。この配列のエントリは、Webサーバにより 生成されます。全てのWebサーバがこれら全てを提供する保障はありませ ん。サーバは、これらのいくつかを省略したり、この一覧にない他のも のを定義する可能性があります。これらの変数の多くは、 CGI 1.1 specificationで定義さ れています。したがって、これらについては定義されていることを期待 することができます。 これは、'スーパーグローバル(superglobal)'、または自動グローバル (automatic global)、変数です。これは、スクリプトの全てのスコープ で利用可能であることを意味します。関数やメソッドの中からこの変数 にアクセスする際に $HTTP_SERVER_VARS のように global $_SERVER; とする必要はありません。 $HTTP_SERVER_VARS の最初の情報は同じですが、 autoglobalではありません。(HTTP_SERVER_VARS と $_SERVERは異なる変数であり、PHPは異なる変数と して処理を行うことに注意して下さい) register_globals ディ レクティブを設定した場合、これらの変数は、スクリプトのグローバル スコープ、つまり、配列 $_SERVER 及び $HTTP_SERVER_VARS 以外のグローバル変数として 利用可能となります。関連情報については、 register_globalsの使用法 という名前のセキュリティに関する章を参照下さい。 これらの各グローバル変数は、autoglobalではありません。 以下の各要素のいくつかは $_SERVER に現れない可能性があります。PHP をコマンドラインで実行している場合には、使用できるものは僅かである ことに注意して下さい。
環境変数: $_ENV
これらの変数はPHPパーサが実行されている環境から PHPのグローバル名前空間に取り込まれます。 その多くは、PHPが実行されているシェルに由来するものであり、 システムが違えばシェルも違ってくるため、確定的なリストを 得ることは不可能です。定義されている環境変数のリストについては 使用しているシェルのドキュメントをご覧ください。 PHPがサーバモジュールとして実行されているかCGIプロセッサとして 実行されているかに関わらず、その他の環境変数はCGI変数を含みます。 これは'スーパーグローバル'又は自動グローバルな変数です。 つまり、スクリプトの全てのスコープで有効な変数であるということです。 $HTTP_ENV_VARSを使うときそうするように、 この変数に関数やメソッドの中からアクセスする際に global $_ENV;のようにする必要はありません。 $HTTP_ENV_VARSは同じ情報を持っていますが、 これは自動グローバルではありません。(HTTP_ENV_VARSと $_ENVは違う変数であり、PHPはそれぞれ別に扱います) register_globalsが オンにセットされている場合、これらの変数はグローバルスコープ で有効となります。例えば、$_ENVと $HTTP_ENV_VARS配列は分けられます。 関連する情報として、 Using Register Globals というセキュリティの章をご覧ください。 個々のグローバルは自動グローバルではありません。 HTTPクッキー: $_COOKIE
カレントのスクリプトから渡されたHTTPクッキーの情報が 格納された連想配列。 これは'スーパーグローバル'又は自動グローバルな変数です。 つまり、スクリプトの全てのスコープで有効な変数であるということです。 $HTTP_COOKIE_VARSを使うときにそうするように、 この変数に関数やメソッドの中からアクセスする際に global $_COOKIE;のようにする必要はありません。 $HTTP_COOKIE_VARSは同じ情報を持っていますが、 これは自動グローバルではありません。 (HTTP_COOKIE_VARSと$_COOKIE は違う変数であり、PHPはそれぞれ別に扱います) register_globalsが オンにセットされている場合、これらの変数はグローバルスコープ で有効となります。例えば、$_COOKIEと $HTTP_COOKIE_VARS配列は分けられます。 関連する情報として、 Using Register Globals というセキュリティの章をご覧ください。 個々のグローバルは自動グローバルではありません。 HTTP GET 変数: $_GET
カレントのスクリプトからHTTP GETを通して渡された情報が 格納された連想配列。自動的にどのスコープでもグローバルとなる。 これは'スーパーグローバル'又は自動グローバルな変数です。 つまり、スクリプトの全てのスコープで有効な変数であるということです。 $HTTP_GET_VARSを使うときにそうするように、 この変数に関数やメソッドの中からアクセスする際に global $_GET;のようにする必要はありません。 $HTTP_GET_VARSは同じ情報を持っていますが、 これは自動グローバルではありません。 (HTTP_GET_VARSと$_GET は違う変数であり、PHPはそれぞれ別に扱います) register_globalsが オンにセットされている場合、これらの変数はグローバルスコープ で有効となります。例えば、$_GETと $HTTP_GET_VARS配列は分けられます。 関連する情報として、 Using Register Globals というセキュリティの章をご覧ください。 個々のグローバルは自動グローバルではありません。 HTTP POST 変数: $_POST
カレントのスクリプトからHTTP POSTを通して渡された情報が 格納された連想配列。自動的にどのスコープでもグローバルとなる。 これは'スーパーグローバル'又は自動グローバルな変数です。 つまり、スクリプトの全てのスコープで有効な変数であるということです。 $HTTP_POST_VARSを使うときにそうするように、 この変数に関数やメソッドの中からアクセスする際に global $_POST;のようにする必要はありません。 $HTTP_POST_VARSは同じ情報を持っていますが、 これは自動グローバルではありません。 (HTTP_POST_VARSと$_POST は違う変数であり、PHPはそれぞれ別に扱います) register_globalsが オンにセットされている場合、これらの変数はグローバルスコープ で有効となります。例えば、$_POSTと $HTTP_POST_VARS配列は分けられます。 関連する情報として、 Using Register Globals というセキュリティの章をご覧ください。 個々のグローバルは自動グローバルではありません。 HTTPファイルアップロード変数: $_FILES
カレントのスクリプトからHTTP POSTメソッドを通してアップロードされた 情報が格納された連想配列。自動的にどのスコープでもグローバルとなる。 これは'スーパーグローバル'又は自動グローバルな変数です。 つまり、スクリプトの全てのスコープで有効な変数であるということです。 $HTTP_POST_FILESを使うときにそうするように、 この変数に関数やメソッドの中からアクセスする際に global $_FILES;のようにする必要はありません。 $HTTP_POST_FILESは同じ情報を持っていますが、 これは自動グローバルではありません。 register_globalsが オンにセットされている場合、これらの変数はグローバルスコープ で有効となります。例えば、$_FILESと $HTTP_POST_FILES配列は分けられます。 関連する情報として、 Using Register Globals というセキュリティの章をご覧ください。 個々のグローバルは自動グローバルではありません。 リクエスト変数: $_REQUEST
$_GET, $_POST, $_COOKIE, $_FILES の内容を格納した連想配列 これは'スーパーグローバル'又は自動グローバルな変数です。 つまり、スクリプトの全てのスコープで有効な変数であるということです。 この変数に関数やメソッドの中からアクセスする際に global $_FILES;のようにする必要はありません。 register_globalsが オンにセットされている場合、これらの変数はグローバルスコープ で有効となります。例えば、$_REQUEST 配列は分けられます。 関連する情報として、 Using Register Globals というセキュリティの章をご覧ください。 個々のグローバルは自動グローバルではありません。 セッション変数: $_SESSION
現在のスクリプトで有効なセッション情報が格納された配列です。 使用法の詳細については セッション処理関数を ご覧ください。 これは'スーパーグローバル'又は自動グローバルな変数です。 つまり、スクリプトの全てのスコープで有効な変数であるということです。 $HTTP_SESSION_VARSを使うときにそうするように、 この変数に関数やメソッドの中からアクセスする際に global $_SESSION;のようにする必要はありません。 $HTTP_SESSION_VARSは同じ情報を格納しています が、自動グローバルではありません。 register_globalsが オンにセットされている場合、これらの変数はグローバルスコープ で有効となります。例えば、$_SESSION と$HTTP_SESSION_VARS配列は分けられます。 関連する情報として、 Using Register Globals というセキュリティの章をご覧ください。 個々のグローバルは自動グローバルではありません。 グローバル変数: $GLOBALS
カレントのスクリプト上でグローバルスコープで定義されている全ての 変数を格納した連想配列。変数の名前は配列のキー。 これは'スーパーグローバル'又は自動グローバルな変数です。 つまり、スクリプトの全てのスコープで有効な変数であるということです。 この変数に関数やメソッドの中からアクセスする際に global $_GLOBALS;のようにする必要はありません。 直近のエラーメッセージ: $php_errormsg$php_errormsgは、PHPによって発せられた 最後のエラーメッセージのテキストを格納する変数です。 エラーが発生したスコープ内で、かつ、track_errors設定オプションが オン(デフォルトはオフ)にセットされている場合にのみ有効です。 | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "PHP マニュアル". See Index Page for more info about Authorship and Copyright. 1999-2009 Linuxinfor.com. No rights reserved. |