いくつかのスーパー グローバル変数 (スーパーグローバル) が PHP で事前定義されており、スクリプトのスコープ全体で使用できることを意味します。 特別な指示なしで関数やクラスで使用できます。
PHP スーパーグローバル変数リスト:
$GLOBALS
$_SERVER
$_REQUEST
$_GET
$_FILES
$_ENV
$_ CO OKIE
$_SESSION
$GLOBAL
$GLOBAL は、すべての変数を含むグローバル結合配列です。変数の名前は配列のキーです。
次の例では、スーパー グローバル変数 $GLOBAL の使用方法を紹介します:
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
上記の例では、z は $GLOBALS 配列内のスーパー グローバル変数であり、関数の外部からもアクセスできます。
$_SERVER
次の例は、$_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'] | スクリプトが現在実行されているサーバーのホスト名。スクリプトが仮想ホスト上で実行されている場合、名前はその仮想ホストに設定された値によって決まります。(例: www.w3cschool.cc) |
$_SERVER['SERVER_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'] | 現在のリクエスト ヘッダー内の Host: 項目の内容 (存在する場合)。 |
$_SERVER['HTTP_REFERER'] | 現在のページの前のページのアドレス (存在する場合) にユーザー エージェントを誘導します。ユーザーエージェント設定によって決定されます。すべてのユーザーエージェントがこの項目を設定するわけではなく、一部のユーザーエージェントは HTTP_REFERER を変更する機能も提供します。要するに、その値は信頼できません。 ) |
$_SERVER['HTTPS'] | スクリプトが HTTPS プロトコル経由でアクセスされる場合は、空ではない値に設定します。 |
$_SERVER['REMOTE_ADDR'] | 現在のページを閲覧しているユーザーの IP アドレス。 |
$_SERVER['REMOTE_HOST'] | 現在のページを閲覧しているユーザーのホスト名。 DNS 逆引き解決は、ユーザーの REMOTE_ADDR には依存しません。 |
$_SERVER['REMOTE_PORT'] | ユーザーのマシン上の Web サーバーに接続するために使用されるポート番号。 |
$_SERVER['SCRIPT_FILENAME'] | 現在実行中のスクリプトの絶対パス。 |
$_SERVER['SERVER_ADMIN'] | この値は、Apache サーバー設定ファイルの SERVER_ADMIN パラメータを指定します。スクリプトが仮想ホスト上で実行されている場合、この値はその仮想ホストの値になります。(例:someone@w3cschool.cc) |
$_SERVER['SERVER_PORT'] | Web サーバーによって使用されるポート。デフォルト値は「80」です。 SSL セキュア接続を使用する場合、この値はユーザーが設定した HTTP ポートです。 |
$_SERVER['SERVER_SIGNATURE'] | サーバーのバージョンと仮想ホスト名を含む文字列。 |
$_SERVER['PATH_TRANSLATED'] | 現在のスクリプトが配置されているファイル システムのベース パス (ドキュメント ルート ディレクトリではありません)。これは、サーバーが仮想パスから実際のパスにイメージ化された後の結果です。 |
$_SERVER['SCRIPT_NAME'] | 現在のスクリプトへのパスが含まれます。これは、ページがそれ自体を指す必要がある場合に便利です。 __FILE__ 定数には、現在のスクリプト (インクルード ファイルなど) の完全なパスとファイル名が含まれます。 |
$_SERVER['SCRIPT_URI'] | URI は、アクセスするページを指定するために使用されます。たとえば、「/index.html」です。 |
PHP $_REQUEST 用于收集HTML表单提交的数据。
以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至ff9c23ada1bcecdd1a0fb5d5a0f18437标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据:
<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>
PHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。
以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。 当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至ff9c23ada1bcecdd1a0fb5d5a0f18437标签中 action 属性中指定的脚本文件。 在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。 然后,我们可以使用超级全局变量 $_POST 来收集表单中的 input 字段数据:
<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 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。
$_GET 也可以收集URL中发送的数据。
假定我们有一个包含参数的超链接HTML页面:
<html><body><a href="test_get.php?subject=PHP&web=w3cschool.cc">Test $GET</a></body></html>
当用户点击链接 "Test $GET", 参数 "subject" 和 "web" 将发送至"test_get.php",你可以在 "test_get.php" 文件中使用 $_GET 变量来获取这些数据。
以下实例显示了 "test_get.php" 文件的代码:
<html><body><?php echo "Study " . $_GET['subject'] . " at " . $_GET['web'];?></body></html>