スーパー グローバル変数は、PHP 4.1.0 以降で有効になりました。これらは、PHP システムに付属する変数であり、スクリプトのスコープ全体で使用できます。
PHP スーパー グローバル変数
いくつかのスーパー グローバル変数 (スーパーグローバル) が PHP で事前定義されています。つまり、それらはスクリプトのスコープ全体で使用可能です。 特別な指示なしで関数やクラスで使用できます。
PHP スーパーグローバル変数リスト:
• $GLOBALS は現在のスクリプト内のすべてのグローバル変数を保存します。KEY は変数名、VALUE は変数値です
• $_SERVER 現在の Web サーバー変数配列
• $_REQUEST $_GET、$_POST、$_COOKIE、$_SESSION のすべてのリクエストの配列を送信フォームに保存します
• $_POST は、POST メソッドで送信されたフォームにデータを保存します
• $_GET は、 GET メソッド データ
• $_FILES ファイルをアップロードすることで現在のスクリプトに送信されたデータを保存します
• $_ENV 現在の Web 環境変数を保存します
• $_COOKIE ユーザーのブラウザ Cookie に保存されている変数配列を取得または設定します
• $_SESSION 現在のスクリプト セッション変数の配列を保存します
この章では、一般的に使用されるいくつかのスーパー グローバル変数について説明し、残りの変数については次の数章で紹介します。
PHP $GLOBALS
$GLOBALS は、PHP スクリプトのスコープ全体でアクセスできる PHP のスーパーグローバル変数グループです。
$GLOBALS は、すべての変数を含むグローバル結合配列です。変数の名前は配列のキーです。
次の例では、スーパーグローバル変数 $GLOBALS の使用方法を紹介します:
例
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
実行例 »
上記の例では、z は $GLOBALS 配列内のスーパーグローバル変数であり、外部からアクセスすることもできます関数。
PHP $_SERVER
$_SERVER は、ヘッダー、パス、スクリプトの場所などの情報を含む配列です。 この配列内の項目は Web サーバーによって作成されます。すべてのサーバーがすべてのアイテムを提供するという保証はありません。サーバーは一部のアイテムを無視したり、ここにリストされていないアイテムを提供したりする可能性があります。
次の例は、$_SERVER の要素の使用方法を示しています:
例
<?php echo $_SERVER['PHP_SELF']; echo "<br>"; echo $_SERVER['SERVER_NAME']; echo "<br>"; echo $_SERVER['HTTP_HOST']; echo "<br>"; echo $_SERVER['HTTP_REFERER']; echo "<br>"; echo $_SERVER['HTTP_USER_AGENT']; echo "<br>"; echo $_SERVER['SCRIPT_NAME']; ?>
実行例»
次の表は、$_SERVER 変数のすべての重要な要素を示しています:
要素/コード説明
$_SERVER['PHP_SELF'] 現在実行中のスクリプトのファイル名はドキュメントルートに関連付けられています。たとえば、http://example.com/test.php/foo.bar のスクリプトで $_SERVER['PHP_SELF'] を使用すると、/test.php/foo.bar になります。 __FILE__ 定数には、現在の (つまり、ファイルを含む) ファイルの絶対パスとファイル名が含まれます。 PHP 4.3.0 バージョン以降、PHP がコマンド ライン モードで実行される場合、この変数にはスクリプト名が含まれます。この変数は以前のバージョンでは使用できません。
$_SERVER['GATEWAY_INTERFACE'] サーバーで使用される CGI 仕様のバージョン (例: "CGI/1.1")。
$_SERVER['SERVER_ADDR'] スクリプトが現在実行されているサーバーの IP アドレス。
$_SERVER['SERVER_NAME'] スクリプトが現在実行されているサーバーのホスト名。スクリプトが仮想ホスト上で実行されている場合、名前はその仮想ホストに設定された値によって決まります。 (例: _SOFTWARE'] サーバー識別文字列。リクエストに応答するときのヘッダー情報。 (例: Apache/2.2.24)
$_SERVER['SERVER_PROTOCOL'] ページをリクエストするときの通信プロトコルの名前とバージョン。たとえば、「HTTP/1.0」です。
$_SERVER['REQUEST_METHOD'] ページへのアクセスに使用されるリクエスト メソッド。たとえば、「GET」、「HEAD」、「POST」、「PUT」。
$_SERVER['REQUEST_TIME'] リクエストが開始されたときのタイムスタンプ。 PHP 5.1.0 以降で利用可能です。 (例: 1377687496)
$_SERVER['QUERY_STRING'] クエリ文字列 (クエリ文字列) がある場合、ページ アクセスはそれを通じて実行されます。
$_SERVER['HTTP_ACCEPT'] 現在のリクエストヘッダーに Accept: 項目が存在する場合、その内容。
$_SERVER['HTTP_ACCEPT_CHARSET'] 現在のリクエストヘッダー内の Accept-Charset: 項目の内容 (存在する場合)。例: 「iso-8859-1,*,utf-8」。
$_SERVER['HTTP_HOST']現在のリクエストヘッダー (存在する場合)。
$_SERVER['HTTP_REFERER']ユーザー エージェントを現在のページの前のページのアドレス (存在する場合) に誘導します。ユーザーエージェント設定によって決定されます。すべてのユーザーエージェントがこの項目を設定するわけではなく、一部のユーザーエージェントは HTTP_REFERER を変更する機能も提供します。要するに、その値は信頼できません。 )httpsプロトコルを介してスクリプトにアクセスされる場合、$ _server ['https']は空でない値に設定されます。 Er $ _Server ['remote_addr'] 現在のページのユーザーの IP アドレスを参照します。 Er $ _Server ['remote_host'] 現在のページでユーザーのホスト名を参照します。 DNS 逆引き解決は、ユーザーの REMOTE_ADDR には依存しません。
$ _server ['remote_port']彼女自身が彼女自身に彼女自身が彼女自身に彼女自身が彼女を彼女にするために彼女の彼女の彼女のすべてを彼女に彼女に彼女に彼女自身をする。
$_SERVER['SCRIPT_FILENAME'] 現在実行中のスクリプトの絶対パス。
$_SERVER['SERVER_ADMIN'] この値は、Apache サーバー構成ファイルの SERVER_ADMIN パラメーターを指定します。スクリプトが仮想ホスト上で実行されている場合、この値はその仮想ホストの値になります。 (例:someone@runoob.com)
$_SERVER['SERVER_PORT'] Web サーバーが使用するポート。デフォルト値は「80」です。 SSL セキュア接続を使用する場合、この値はユーザーが設定した HTTP ポートです。
$_SERVER['SERVER_SIGNATURE'] サーバーのバージョンと仮想ホスト名を含む文字列。
$_SERVER['PATH_TRANSLATED'] 現在のスクリプトが配置されているファイル システムのベース パス (ドキュメント ルート ディレクトリではありません)。これは、サーバーが仮想パスから実際のパスにイメージ化された後の結果です。
$_SERVER['SCRIPT_NAME'] 現在のスクリプトのパスが含まれます。これは、ページがそれ自体を指す必要がある場合に便利です。 __FILE__ 定数には、現在のスクリプト (インクルード ファイルなど) の完全なパスとファイル名が含まれます。
$ _Server ['Script_uri']にアクセスします。たとえば、「/index.html」です。
PHP $_REQUEST
PHP $_REQUEST は、HTML フォームによって送信されたデータを収集するために使用されます。
次の例は、入力フィールドと送信ボタンのあるフォームを示しています。 ユーザーが「送信」ボタンをクリックしてフォームデータを送信すると、<form>タグのaction属性に指定されたスクリプトファイルにフォームデータが送信されます。 この例では、フォーム データを処理するファイルを指定します。別の PHP ファイルでこのデータを処理する場合は、指定したスクリプト ファイル名を変更できます。 次に、スーパー グローバル変数 $_REQUEST を使用して、次の形式で入力フィールド データを収集できます。
Instance
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
実行例»
$_SERVER['PHP_SELF'] は開発中によく使用され、通常は次の目的で使用されます。参照 現在の Web ページのアドレス。システムによって自動的に生成されるグローバル変数です。
PHP $_POST
PHP $_POST は、HTML フォーム タグでこの属性を指定します: "method="post"。
次の例は、入力フィールドを示しています。ユーザーが「送信」ボタンをクリックしてフォームデータを送信すると、 <form> タグの action 属性に指定されたスクリプトファイルにフォームデータが送信されます。フォーム データを処理するファイルを指定します。他の PHP ファイルでデータを処理したい場合は、スーパー グローバル変数 $_POST を使用してフォームの入力フィールド データを収集できます。 :
インスタンス
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Name: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
インスタンスの実行»
PHP $_GET
PHP $_GET は、フォーム データの収集にも広く使用されています。HTML フォーム タグでこの属性を指定します: "method="get"。
$_GET は、URL で送信されたデータも収集できます。
次のパラメータがあるとします。ハイパーリンク HTML ページ:
<html> <body> <a href="test_get.php?subject=PHP&web=runoob.com">Test $GET</a> </body> </html>
ユーザーがリンク「Test $GET」をクリックすると、パラメーター「subject」と「web」が「test_get.php」に送信され、「test_get.php」で $_GET 変数を使用できます。 php" ファイルを使用してこのデータを取得します。
次の例は、"test_get.php" ファイルのコードを示しています:
例
<html> <body> <?php echo "Study" . $_GET['subject'] . "at" . $_GET['web']; ?> </body> </html>
実行例»
ヒント: $_POST と $ について詳しく知りたい場合_GET、PHP フォーム セクションにアクセスしてください