スーパーグローバルは、PHP 4.1.0で導入されました、そして、内蔵されているすべてのスコープで常に使用可能な変数。
PHPのグローバル変数 - スーパーグローバル
PHPでのいくつかの定義済み変数は"superglobals"関係なく、スコープの、彼らは常にアクセス可能であることを意味し、 -あなたは特別な何かをすることなく、任意の関数、クラス、またはファイルからそれらにアクセスすることができます。
PHPスーパーグローバル変数は次のとおりです。
- $ GLOBALS
- $ _SERVER
- $ _REQUEST
- $ _POST
- $ _GET
- $ _FILES
- $ _ENV
- $ _COOKIE
- $ _SESSION
この章では、スーパーグローバルのいくつかを説明します、残りは後の章で説明します。
PHP $ GLOBALS
$ GLOBALSは(関数やメソッド内からも)PHPスクリプトのどこからでもグローバル変数にアクセスするために使用されるPHPのスーパーグローバル変数です。
PHPの店$ GLOBALS [呼び出され、アレイ内のすべてのグローバル変数index ]。 インデックスは 、変数の名前を保持します。
以下の例では、スーパーグローバル変数$ GLOBALSを使用する方法を示しています。
例
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] =
$GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
»実行例 zは$ GLOBALSアレイ内の変数が存在するので、上記の例では、それはまた、機能外部からアクセス可能です!
PHP $ _SERVER
$ _SERVERは、ヘッダ、パス、スクリプトの位置に関する情報を保持しているPHPのスーパーグローバル変数です。
以下の例は、$ _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'] | 現在実行中のスクリプトのファイル名を返します。 |
$ _SERVER [ 'GATEWAY_INTERFACE'] | Common Gateway Interfaceのバージョンを返します(CGI)サーバが使用しています |
$ _SERVER [ 'SERVER_ADDR'] | ホストサーバのIPアドレスを返します。 |
$ _SERVER [ 'SERVER_NAME'] | ホストサーバーの名前を返します(such as www.w3ii.com) |
$ _SERVER [ 'SERVER_SOFTWARE'] | サーバ識別文字列を返します(such as Apache/2.2.24) |
$ _SERVER [ 'SERVER_PROTOCOL'] | 情報プロトコルの名前とリビジョンを返し(such as HTTP/1.1) |
$ _SERVER [ 'REQUEST_METHOD'] | ページにアクセスするために使用するリクエストメソッドを返します(such as POST) |
$ _SERVER [ 'REQUEST_TIME'] | リクエストの開始のタイムスタンプを返します(such as 1377687496) |
$ _SERVER [ 'QUERY_STRING'] | ページはクエリ文字列を介してアクセスされた場合は、クエリ文字列を返します。 |
$ _SERVER [ 'HTTP_ACCEPT'] | 現在のリクエストからAcceptヘッダーを返します。 |
$ _SERVER [ 'HTTP_ACCEPT_CHARSET'] | 現在の要求からAccept_Charsetヘッダを返す(UTF-8など、ISO-8859-1) |
$ _SERVER [ 'HTTP_HOST'] | 現在のリクエストからHostヘッダを返します。 |
$ _SERVER [ 'HTTP_REFERER'] | (すべてではないユーザーエージェントがそれをサポートしているため信頼性がない)現在のページの完全なURLを返します。 |
$ _SERVER [ 'HTTPS'] | このスクリプトは、セキュアなHTTPプロトコルを介して照会され |
$ _SERVER [ 'REMOTE_ADDR'] | ユーザーが現在のページを見ているところからIPアドレスを返します。 |
$ _SERVER [ 'REMOTE_HOST'] | ユーザーが現在のページを見ているところからホスト名を返します。 |
$ _SERVER [ 'REMOTE_PORT'] | Webサーバと通信するために、ユーザーのマシン上で使用されているポートを返します。 |
$ _SERVER [ 'SCRIPT_FILENAME'] | 現在実行中のスクリプトの絶対パス名を返します。 |
$ _SERVER [ 'SERVER_ADMIN'] | (あなたのスクリプトがバーチャルホスト上で実行されている場合、それはその仮想ホスト用に定義された値になります)、Webサーバの設定ファイルのSERVER_ADMINディレクティブに与えられた値を返します(such as [email protected]) |
$ _SERVER [ 'SERVER_PORT'] | 通信のためのウェブサーバによって使用されているサーバマシン上のポートを返し(such as 80) |
$ _SERVER [ 'SERVER_SIGNATURE'] | サーバーで生成されたページに追加されているサーバのバージョンおよび仮想ホスト名を返します。 |
$ _SERVER [ 'PATH_TRANSLATED'] | 現在のスクリプトにファイルシステムベースのパスを返します。 |
$ _SERVER [ 'SCRIPT_NAME'] | 現在のスクリプトのパスを返します |
$ _SERVER [ 'SCRIPT_URI'] | 現在のページのURIを返します。 |
PHP $ _REQUEST
PHP $ _REQUESTは、HTMLフォームを送信した後にデータを収集するために使用されます。
以下の例では、入力フィールドと送信ボタンを持つフォームを示しています。 ユーザーはをクリックしてデータを送信すると"Submit" 、フォームのデータがで指定されたファイルに送信されactionの属性<form>タグ。 この例では、フォームデータを処理するために、このファイル自体を指します。 あなたは、フォームデータを処理するために、別のPHPファイルを使用したい場合は、お好みのファイル名でそれを置き換えます。 その後、我々は、入力フィールドの値を収集するために、スーパーグローバル変数$ _REQUESTを使用することができます。
例
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name
is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
»実行例 PHP $ _POST
PHP $ _POSTは広くメソッド=「ポスト」でHTMLフォームを提出した後、フォームデータを収集するために使用されます。 $ _POSTも広く変数を渡すために使用されます。
以下の例では、入力フィールドと送信ボタンを持つフォームを示しています。 ユーザーはをクリックしてデータを送信すると"Submit" 、フォームのデータがで指定されたファイルに送信されactionの属性<form>タグ。 この例では、フォームデータを処理するためのファイル自体を指しています。 あなたは、フォームデータを処理するために、別のPHPファイルを使用したい場合は、お好みのファイル名でそれを置き換えます。 その後、我々は、入力フィールドの値を収集するために、スーパーグローバル変数$ _POSTを使用することができます。
例
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name
is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
»実行例 PHP $ _GET
PHP $ _GETもメソッド=「GET」でHTMLフォームを提出した後、フォームデータを収集するために使用することができます。
$ _GETはまた、URLに送信されたデータを収集することができます。
我々はパラメータを使用してハイパーリンクを含むHTMLページを持っていると仮定します。
<html>
<body>
<a href="test_get.php?subject=PHP&web=w3ii.com">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>
»実行例 ヒント:あなたは 、よりおよそ$ _POSTや$ _GETを学びますPHPフォームの章を。