KONOTI

この世界で得た知識・情報まとめ

【PHP】スーパーグローバル変数とは?使い方をわかりやすく説明

  • 作成日:2018/06/08

PHPのスーパーグローバル変数についてまとめました。初心者でもわかるようになるべく簡単に説明したいと思います。

【PHP】スーパーグローバル変数とは?使い方をわかりやすく説明

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

PHPのスーパーグローバル変数とは 関数内外問わずどこからでもアクセスできる変数です。 定義済みの変数なので、自分で宣言しなくても使えます。 ちなみに、連想配列となっています。

スーパーグローバル変数には色々な種類があります。用途に応じて使い分けたりします。

変数一覧
  • $_GET
  • $_POST
  • $GLOBALS
  • $_SERVER
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV
  • $php_errormsg

使い方

スーパーグローバル変数は以下のように記述します。

PHP

            $_GET['hoge'] = 'hooooge';
                        

hogeをキーと呼び、hoooogeがその値となります。 上記は変数$_GETの中でキー値がhogeのものに値を格納していますね。

逆に値を取り出すときは以下のようにします。

PHP

            $tmp = $_GET['hoge'];
                        

このように記述することで、$_GETのキー値hogeに格納されている値がtmpへ格納されます。

また、スーパーグローバル変数は連想配列なので、キーはhogeだけでなく以下のように複数のキーを設定することができます。

PHP

            $_GET['hoge'] = 'hooooge';

            $_GET['age'] = 'ageeee';

            $_GET['sage'] = 'sageeee';
                        

これは例なのでキー名と値は仮定したものですが、 スーパーグローバル変数は「キーを指定して値を取得したり設定する」ということを覚えておいてください。

実例1

実際にスーパーグローバル変数を使ってみます。 例えば、PHPのプログラムでIPアドレスやホスト名を取得するケースがあるとします。

IPアドレスやホスト名などのサーバー情報は$_SERVER変数を使うと簡単に取得できます。

PHP

            //IPアドレス取得
            $ip= $_SERVER['SERVER_ADDR'];
            
            //ホスト名取得
            $host= $_SERVER['SERVER_NAME'];
                        

$_SERVERはサーバ情報が格納されたスーパーグローバル変数です。

$_SERVERは様々なキーを持っていますが、 IPアドレスとホスト名に該当するキーは「SERVER_ADDR」と「SERVER_NAME」なので、 これを指定してあげます。

実例2

次にアクセス情報を取得したいケースを考えます。

アクセスの種類はGETアクセスとPOSTアクセスの2種類がありますが、 GETは通常のアクセスで、POSTは問い合わせフォームなどで使う特殊なアクセスです。

補足

ネットサーヒィンで色々なサイトにアクセスする場合、 大抵がこのGETアクセスとなります。

アクセス情報はURLの末尾に付加されているので、 これをスーパーグローバル変数を使って取得します。 例えば以下のようなURLがあるとします。


            https://abc/efg.php?test=hoge
                        

アクセス情報は「?」の後に付加されているので、「?」以降のデータを取得します。 取得にはスーパーグローバル変数$GETを使います。

PHP

            $get =$_GET['test'];
                        

このように、GETアクセスの情報は$GET変数で取得できます。 キー値はURL末尾?test=hogeの左辺を指定します。

そうすると、$getにはhogeが格納されます。

補足

実例1ではキー値は「SERVER_ADDR」などの定義済みの固定値でしたが、 今回は定義済み変数ではありません。

スーパーグローバル変数は変数によってキー値が定義されているものと、そうでないものがあります。 実例1ではキー値がSERVER_ADDRなどと決まっていましたが、今回の例ではtestという付与されてきたものですね。

まとめ

始めてスーパーグローバル変数を扱うとき、キー値について混乱する方もいるかと思います。 これは、変数によりキー値の扱いが少し異なるためです。

先ほど紹介した実例1ではキー値は最初から定義済みとなっており、これを指定するだけでサーバ情報を取得できました。

しかし、実例2ではURLに付加してきたものがキー値となっていました。

このように、変数によりキー値の扱いが少し異なってきますが、どの変数を使おうが基本的な使い方は変わりません。 スーパーグローバル変数からデータを取得するには、データに応じたキー値を指定して取得するのです。

どのようなキー値があるのかは変数によって異なるため、 変数を使うときにそれぞれ確認すると良いでしょう。

この記事のシェアはこちらから

当サイトについて

当サイト(KONOTI)は、日常生活において運営者が得た情報をご紹介するサイトです。 ジャンルに多少の偏りはありますが、基本的には様々な情報を取り扱っていく予定です。

Contact

当サイトへのご連絡は以下よりお願いします。

PAGE TOP ▲

© Copyright 2019 KONOTI