トップ 言語 PHP プログラミング基礎(文法) グローバル変数 PHPのスーパーグローバル変数

PHPのスーパーグローバル変数―$_ENV、$_FILES、$_GET、$_POST、$_SERVERなど

PHPでは、スーパーグローバル変数と呼ばれるPHPの実行環境側で自動的に定義され、プログラムのどこからでも汎用的に使うことが出来る変数があります。$_ENV、$_FILES、$_GET、$_POST、$_SERVERなど、PHPのスーパーグローバル変数についてまとめています。

▲記事トップへ

目次

この記事の目次です。

1. スーパーグローバル変数とは
2. スーパーグローバル変数の種類(一覧表)
3. $_ENV(環境変数の情報)
4. $_FILES(POSTでUPされたファイル情報)
5. $_SERVER(サーバー情報)

もっと知識を広げるための参考
更新履歴

1. スーパーグローバル変数とは

PHPでは、PHPの実行環境側で自動的に定義され、プログラムのどこからでも汎用的に使うことが出来る変数があります。 このような定義済みの変数をスーパーグローバル変数といいます。

PHPの変数とグローバル変数について補足

PHPの変数はドル記号の後に変数名が続く形式で表されます。 通常ローカル変数として機能します。 ローカル変数はブロック内のスコープできる変数です。 ただし、関数外などのブロックがないところで宣言すると範囲は includeやrequireにより読みこまれたファイルも含みグローバル変数として機能します。 関数やメソッドの内部からアクセスする際は、「global $変数名;」を記述する必要があります。

グローバル変数

グローバル変数とは、大域変数ともいい、ファイル全体で有効な変数です。 PHPには、関数内などで変数に「global」を付けて宣言すると、その変数は関数の内外を問わず使用できます。

詳細

スーパーグローバル変数はglobalが不要

PHPのスーパーグローバル変数は、定義済み変数でスクリプト全体を通してすべてのスコープで使用可能な変数のことです。 関数やメソッドの内部からアクセスする際にも「global $変数名;」などとする必要はありません。

スーパーグローバル変数の種類

後で詳しくまとめますが、スーパーグローバルには次のようなものがあります。

スーパーグローバル変数の使用方法

スーパーグローバル変数の使用方法ですが、以下のようにパラメータの種類を添え字に指定して値を取得します。

$スーパーグローバル変数['パラメータ']

注意点

使用できる変数は、デフォルトでは、すべてのスーパーグローバルが使用可能です。 ただし、それに影響を与える設定項目もあります。 それと、スーパーグローバルは、関数やクラスメソッドの中の 可変変数 として使用することはできません。

2. スーパーグローバル変数の種類(一覧表)

以下にスーパグローバル変数の種類をまとめています。

スパーグローバル変数の種類
変数名保存情報説明
$_COOKIE クッキー情報 リクエストで渡されたクッキーの値が保存されます。 クライアントからCOOKIEで渡された情報が保存されます。 HTTP Cookieにより、サーバサイドのスクリプトに送信されるクッキー情報が取得できます。
$_ENV 環境変数の情報 環境変数の値が保存されます。 環境変数の値が取得できます。 環境変数の名前が配列のキーとなります。
$_FILES ファイル情報 POST送信でアップロードされたファイルの情報が保存されます。 フォームのHTTP POSTファイルアップロードにより、サーバサイドのスクリプトに送信される情報が取得できます。
$_GET GETパラメータ情報 GETリクエストで渡されたパラメータの内容が保存されます。 HTTPプロトコルのGETメソッドにより、フォームからスクリプトに送信される値が取得できます。
$GLOBALS グローバル変数の情報 スクリプトの中で利用可能なすべての変数に対してのリファレンスが保存されます。 利用可能なすべてのグローバル変数の情報が取得できます。
$_POST POSTパラメータ情報 POSTリクエストで渡されたパラメータの内容が保存されます。 HTTPプロトコルのPOSTメソッドにより、フォームからスクリプトに送信される値が取得できます。
$_REQUEST HTTPリクエスト情報 HTTPのリクエスト情報が保存されます。 $_GET、$_POST、$_COOKIE、$_FILESの値が1つの配列に保存されます。 $_GET、$_POST、$_COOKIE、$_FILESの値が取得できます。
$_SERVER サーバ情報 Webサーバーに関する情報が保存されます。 Webサーバーや実行中のスクリプトに関する情報が取得できます。
$_SESSION セッション情報 スクリプトのセッション変数に関する情報が保存されます。 セッションに現在保存されている値が取得できます。

3. $_ENV(環境変数の情報)

環境変数は、OSが持っている、OSの環境に関する情報が入った変数です。 PHPでは、スーパーグローバル変数$_ENVを使って参照できます。

以下はHOSTNAMEを表示する例です。

<?php
if (isset($_ENV["HOSTNAME"])) {
    echo $_ENV["HOSTNAME"];
}
?>

4. $_FILES(POSTでUPされたファイル情報)

グローバルの $_FILES には、アップロードされたファイルの情報が含まれます。 アップロードファイルの名前は任意の名前が利用できますが、以下の説明では<userfile>にしています。

$_FILESで参照できる主なパラメータ
パラメータ保存情報参照方法
name クライアントマシンの元のファイル名。 $_FILES['userfile']['name']
type ファイルのMIME型。ブラウザ側に依存するため値は信用できない。 $_FILES['userfile']['type']
size バイト単位のアップロードされたファイルのサイズ。 $_FILES['userfile']['size']
tmp_name サーバー上でアップロードされたファイルが保存されているテンポラリファイルの名前。 $_FILES['userfile']['tmp_name']
error このファイルアップロードに関する エラーコード $_FILES['userfile']['error']

5. $_SERVER(サーバー情報)

$_SERVERには、Webサーバーやブラウザの情報、Webサーバーが動いているコンピュータのシステムに関する情報が保存されます。 Webサーバーについての有用な情報が数多く保存されています。

$_SERVERで参照できる情報には、主に次のようなものがあります。 $_SERVERの連想配列の添字に($_SERVER['HTTP_REFERER']のように)パラメータ名を文字列で指定します。

$_SERVERで参照できる主なパラメータ
パラメータ保存情報説明
PHP_SELF スクリプト名 現在のスクリプト名をドキュメントルートからの相対パスで表したスクリプト名です。
SERVER_SOFTWARE サーバー識別名 サーバーを識別する文字列です。Apache XXXX(Unix)PHP/XXというようなWebサーバーとPHPのバージョン文字列となります。
SERVER_NAME ホスト名 URLに含まれるホスト名、DNSエイリアス、またはIPアドレスです。
GATEWAY_INTERFACE CGIバージョン CGI標準のどのバージョンにしたがっているかの情報です。
SERVER_PROTOCOL リクエストプロトコル名 リクエスト時のプロトコルの名前とリビジョン情報です。(例:HTTP/1.1)
SERVER_PORT ポート番号 リクエストの送信先のサーバーのポート番号です。
REQUEST_METHOD メソッド 直前の通信におけるデータの受け渡し方法です。 クライアントがドキュメントを取得するために使用したメソッドです。
PATH_INFO URLのリソースパス クライアントが指定した追加のパス要素です。(例 /aaa/bbb)
PATH_TRANSLATED ファイル名 サーバーがPATH_INFOの値をファイル名に変換したものです。(例:/var/www/html/aaa/bbb)
SCRIPT_NAME URLのパス 現在のページへのURLパスです。
QUERY_STRING URLのパラメータ URLの?以降の内容です。
REMOTE_HOST クライアントの端末のホスト名 このページをリクエストしたクライアントマシンのホスト名です。 DNSが存在しない場合は空白になります。
REMOTE_ADDR クライアントのIPアドレス クライアントのIPアドレスです。
AUTH_TYPE 認証方式 パスワードで保護されている場合のそのページの保護にしようした認証方式です。
REMOTE_USER ユーザ名 パスワードで保護されている場合のユーザ名です。
REMOTE_INDENT クライアントホストから取得したユーザ名 サーバー側でidentdのチェックを行うように設定されている場合のリクエスト元のホストから取得したユーザー名です。 簡単に偽装できるので認証に使用してはだめです。
CONTENT_TYPE コンテンツタイプ PUTリクエストやPOSTリクエストの際の付属情報のコンテンツタイプです。
CONTENT_LENGTH コンテンツの長さ PUTリクエストやPOSTリクエストの際の付属情報の長さです。
HTTP_USER_AGENT ユーザーエージェント 直前の通信におけるクライアントのブラウザやOSに関する情報です。
HTTP_REFERER 前のページ 直前の通信における呼び出しもとのURLです。
HTTP_HOST ホストヘッダ情報 ホストヘッダの情報です。
SERVER_ADDR サーバーのIPアドレス サーバーのIPアドレスです。
DOCUMENT_ROOT ドキュメントルート Webサーバーのドキュメントルートのパスです。
SERVER_ADMIN サーバ管理者 Webサーバー管理者のメールアドレスです。
COMPUTERNAME コンピュータ名 コンピュータ名です。

なお、上記のパラメータは使用しているWebサーバによっては保持されるものと保持されないものがあります。

もっと知識を広げるための参考

更新履歴

更新履歴になります。

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Burp /Eclipse /Fiddler /gcc /gdb /Git /g++ /JDK /JMeter /JUnit /Teraterm /ZAP

技術・仕様
Ajax /CORBA /Jakarta EE(旧称J2EE、Java EE) /JNI

ライブラリ/Framework/CMS
bootstrap /jQuery /FuelPHP /Lucene /MyBatis /Seasar2 /Spring /Struts /WordPress

Web API
Google Maps

ITインフラOSとミドルウェア
Linux /Windows /シェル
ActiveMQ /Tomcat /MariaDB /MySQL /Nagios /Redis /Solr

ITインフラサーバー
公開Webサーバー

ITインフラネットワーク
プログラミング /構築

ITインフラセキュリティ
公開サーバーのセキュリティ

PC製品
ZOTAC

SI
ホームページの作り方

その他
IT用語 /ITスキル体系

スポンサーリンク

関連サイト内検索ツール

zealseedsおよび関連サイト内のページが検索できます。

IPアドレス確認ツール

あなたのグローバルIPアドレスは以下です。

18.225.72.161

HTMLの表示色確認ツール

パスワード生成ツール

文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。

ここに生成されます。

スポンサーリンク