menu
ホーム > PHPの文法 > 5 変数 > PHP $_GET(ゲット変数)のすべて!【初心者向け基本】
PHPリファレンス

UPDATE:2021年05月18日

PHP $_GET(ゲット変数)のすべて!【初心者向け基本】

PHP $_GET(ゲット変数)のすべて!【初心者向け基本】 | wepicks!
PHP4.1以上 PHP5 PHP7 PHP8


$_GET(GET変数) は、HTTP GET メソッドでURLパラメータとして送信される値を取得する変数(配列変数)で、連想配列で使用します。 PHPの定義済み変数(=スーパーグローバル変数)の1つです。例えば、<a href="url+値・・">で値を送信し、ジャンプ先で値を受信して処理することが出来ます。


$_GET(ゲット変数) 簡単まとめ

$_GET(ゲット変数)を利用することで、URLの値を受信して処理することが出来ます。

$_GET(ゲット変数)とは

1 Minute Note

  • $_GETPHPの定義済み変数(=スーパーグローバル変数)の1つ
  • $_GETHTTP GET メソッド で送信され、URLパラメーターとして送られてきた値を取得する変数
  • $_GET連想配列として使用する
  • $_GETurldecode()関数を介した値が渡される
  • $_GET は、関数やメソッドの内部で使用する場合、global $_GET; とする必要がない

$_GET(ゲット変数)の送受信

1 Minute Note

  • $_GET は、HTTP GET メソッドで送信された値を取得する変数
  • クライアントからサーバーにデータを送信するHTTPメソッドには、GETPOST の両方がある
  • HTTP GET メソッドでデータを送信するとURLパラメーターとしてデータが送信される
  • URLパラメータとは、URLの後に「?(クエッション)」記号を記述して、その後 「key名=値」 と続けるクエリ文字列「http://sample.com/index.php?key名=値&key名=値&key名=値・・」
  • HTTP GET メソッドでデータを送信する方法はHTML の <form>タグ<a>タグ を利用
  • <form>タグ を利用し HTTP GET メソッドでデータを送信には、method属性GET にする
  • <a>タグ を利用し HTTP GET メソッドでデータを送信には、URLの後に「?(クエッション)」記号を記述して、その後 「key名=値」 と続ける
  • <a>タグ で複数の値を送信する場合は「&(アンド)」で繋げる「http://sample.com/index.php?key名=値&key名=値&key名=値・・」とする
  • $_GETは、連想配列として使用する
  • URLパラメーターの「'key名'」は$_GETの連想配列「'key名'」となる $_GET['key名']
  • $_GETは、urldecode()関数を介して値が渡される
  • クライアントから HTTP GET で送信されたリクエスト結果の値は変化しません。従ってブックマークに登録しても同じ結果を得れる。HTTP POST で送信されたリクエスト結果の値は変化する場合がある



$_GET(GET変数)とは

POINT

  • $_GETPHPの定義済み変数(=スーパーグローバル変数)の1つ
  • $_GETHTTP GET メソッド で送信され、URLパラメーターとして送られてきた値を取得する変数
  • $_GET連想配列として使用する
  • $_GETurldecode()関数を介した値が渡される
  • $_GET は、関数やメソッドの内部で使用する場合、global $_GET; とする必要がない

$_GET は、PHPの定義済み変数のゲット変数です。この変数は、HTTP GET メソッドで送信され、URLパラメーターとして送られてきた値を取得する変数です。

$_GET のデータ型は配列(配列変数)で 連想配列として使用します。

$_GET に渡される値は、自動的にurldecode()関数を介します。urldecode()は、文字列中のエンコード文字である「%##」をデコードします。「+ (プラス)」記号はスペース文字へデコードします。

$_GETは、スーパーグローバル変数なので、スクリプトのコード中どこからでも使用することが出来る変数です。関数やメソッドの内部で使用する場合にも global $_GET; とする必要はありません。


$_GETはPHPの定義済み変数

$_GETは、PHPの定義済み変数の内の1つの変数です。PHPには定義済み変数が複数あります。其の中の1つが$_GETです。
PHPの定義済み変数はスーパーグローバル変数とも言います。
$_GET = PHPの定義済み変数 = スーパーグローバル変数
また、$_GET は自動グローバル変数とも呼ばれます。
(PHPには定義済みの定数というものもあります。詳細はこちらを参照下さい。)

PHPの定義済み変数(=スーパーグローバル変数)

$GLOBALS
(グローバル変数)
・グローバルスコープで使用可能なすべての変数への参照
・連想配列として使用
$_SERVER
(サーバー変数)
・サーバ情報および実行時の環境情報
・連想配列として使用
$_GET
(ゲット変数)
・HTTP GET 変数
・連想配列として使用
$_POST
(ポスト変数)
・HTTP POST 変数
・連想配列として使用
$_FILES
(ファイル変数)
・HTTP ファイルアップロード変数
・連想配列として使用
$_REQUEST
(リクエスト変数)
・HTTP リクエスト変数
・連想配列として使用
$_SESSION
(セッション変数)
・セッション変数
・連想配列として使用
$_ENV
(環境変数)
・環境変数
・連想配列として使用
$_COOKIE
(クッキー変数)
・HTTP クッキー
・連想配列として使用

これら、PHPの定義済み変数は、プログラムコード中何処からでも使用することができます。関数の内部でも globalキーワードを使用せず呼び出すことが出来ます。このように、スーパーグローバル変数は非常に便利なものです。
通常、変数には有効範囲などのルールがあります。このルールは、PHPにおいて変数のスコープという宣言の場所とそれによる有効範囲として定められています。スコープには、「グローバルスコープ」「ローカルスコープ」「スタティック変数関数の引数」の4種類ありますが、これらすべてのスコープを持っているのがスーパーグローバル変数です。
変数のスコープについてはこちらを参照下さい。

※注意2:
ただし、スーパーグローバル変数は、関数やクラスメソッドの中の 可変変数 として使用することはできません。

可変変数についてはこちらを参照下さい。


$_GETの送受信について

POINT

  • $_GET は、HTTP GET メソッドで送信された値を取得する変数
  • クライアントからサーバーにデータを送信するHTTPメソッドには、GETPOST の両方がある
  • HTTP GET メソッドでデータを送信するとURLパラメーターとしてデータが送信される
  • URLパラメータとは、URLの後に「?(クエッション)」記号を記述して、その後 「key名=値」 と続けるクエリ文字列「http://sample.com/index.php?key名=値&key名=値&key名=値・・」
  • HTTP GET メソッドでデータを送信する方法はHTML の <form>タグ<a>タグ を利用
  • <form>タグ を利用し HTTP GET メソッドでデータを送信には、method属性GET にする
  • <a>タグ を利用し HTTP GET メソッドでデータを送信には、URLの後に「?(クエッション)」記号を記述して、その後 「key名=値」 と続ける
  • <a>タグ で複数の値を送信する場合は「&(アンド)」で繋げる「http://sample.com/index.php?key名=値&key名=値&key名=値・・」とする
  • $_GETは、連想配列として使用する
  • URLパラメーターの「'key名'」は$_GETの連想配列「'key名'」となる $_GET['key名']
  • $_GETは、urldecode()関数を介して値が渡される
  • クライアントから HTTP GET で送信されたリクエスト結果の値は変化しません。従ってブックマークに登録しても同じ結果を得れる。HTTP POST で送信されたリクエスト結果の値は変化する場合がある


送受信について

$_GETは、HTTP GET メソッドで送信された値を取得する変数です。HTTPとは、ウェブブラウザとウェブサーバの間でHTMLなどのコンテンツの送受信に用いられる通信プロトコル(通信方法、通信規約というようなものです)のことです。

クライアントからサーバーにデータを送信するHTTPメソッドには、GETPOST の両方があります。HTTP GET メソッドでデータを送信するとURLパラメーターとしてサーバーへデータが送信されます。

URLパラメータとは、URLの後に「?(クエッション)」記号を記述して、その後 「key名=値」 と続けるURLに付随させたクエリ文字列のことです。

$_GETは、上記のような HTTP GET メソッドによって送信されたURLパラメータで渡された値を取得する変数です。

HTTP GET メソッドによってURLパラメーターでデータを送信する方法は HTML の <form>タグ か <a>タグ を利用する2種類の方法があります。<form>タグ のmethod属性 に GET を指定することで、フォームのパラメーターをURL形式に変更し、作成されたクエリ文字列がURLパラメーターとして送信されます。<a>タグ を利用する場合はurlに直接クエリ文字列を書き込みます。クエリ文字列の記述方法は、、URLの後に「?(クエッション)」記号を記述して、その後 「key名=値」 と続けます。複数の値を送信する場合は「&(アンド)」で繋げます。「http://sample.com/index.php?key名=値&key名=値&key名=値&key名=値・・・」とします。

$_GETは、連想配列として使用します。URLパラメーターの「key名」は$_GETの連想配列「key名」となります。従って$_GETを呼び出す場合は、$_GET['key名'] とします。また、この変数の値は、urldecode() 関数を介して渡されます。これは通常自動で行われます。

クライアントから HTTP GET で送信されたリクエスト結果の値は変化しません。従ってブックマークに登録しても同じ結果を得れます。ですが、HTTP POST で送信されたリクエスト結果の値は変化する場合があります。HTTP POSTの場合、ページを再読み込みする際に「フォームのデータを再送信しますか?」などのメッセージが表示されますが、これは値が変化する場合があるためです。


<form>タグ を利用して HTTP GET メソッド で送信

<form>タグ の method属性 に GET を指定することで、フォームのパラメーターをURL形式に変更し、作成されたクエリ文字列がURLパラメーターとして送信されます。

$_GETは、連想配列として使用します。URLパラメーターの「'key名'」は$_GETの連想配列「'key名'」となります。従って$_GETを呼び出す場合は、$_GET[‘key名’] とします。また、$_GETは、urldecode()関数を介して値が渡されます。これは通常自動的に行われます。

送信前

$_GET[‘yourname’]はまだ送信されていません。

となります。

送信後

$_GET[‘yourname’]が送信されました。値は[ 入力値 ]です。

となります。

注目する点は送信後のURLです。URLパラメーターとしてクエリ文字列が記述されています

URLの「?」以降が

或いは

となっています。これがURLパラメーターです$_GETはこのURLパラメーターを取得しています
※ブラウザによってエンコード文字列が表示されているか、デコードされた文字列が表示されているかの違いがあります。


<a>タグ を利用して HTTP GET メソッド で送信

<a>タグ を利用する場合はurlに直接クエリ文字列を書き込みます。この場合、送信する値はurlencode()関数でエンコードして下さい。

$_GETは、連想配列として使用します。URLパラメーターの「'key名'」は$_GETの連想配列「'key名'」となります。従って$_GETを呼び出す場合は、$_GET[‘key名’] とします。また、$_GETは、urldecode()関数を介して値が渡されます。これは通常自動的に行われます。

送信前

$_GET[‘time’]はまだ送信されていません。

となります。

送信後

$_GET[‘time’]が送信されました。値は[ 現在時刻は:2013/10/18 01:21:22 ]です。

となります。

<a>タグ で送信する場合も、送信後のURLが以下のようになっています。

或いは

となっています。


HTTP GET メソッドでフォームの複数の値(チェックボックスなど)を送信

get_checkbox_reg1.php と get_checkbox_reg2.php の2つのファイルを作成し、formタグ のmethod属性をGETにして複数の値(チェックボックスなど)を送信し、 $_GET で値を取得し出力します。

– サンプル Click Here ! –

get_checkbox_reg1.php

HTMLのformタグでmethod属性をGETにして送信します。
inputタグののname属性に「hoby[ ]」と指定することで、チェックボックスなどの複数の値を送信できます。

post_checkbox_reg2.php

$_GETを連想配列として利用します。チェックボックス等で送信された複数の値を取得する方法は幾つかあります。以下の例では、foreach構文やfor文を利用して$_GETを展開しています。


サンプルコード

– サンプル Click Here ! –

実行結果

$_GET変数の送信と取得
このページに 「time」という名前で「値」は現在時刻の GET変数 を送信します。
以下のURLがGET変数を送信するURLです。URLをクリックして送信して下さい。
ソースコードを確認してください。URLの値はurlencode()関数でエンコード文字列になっています。
時刻を送信します。現在時刻は:2013/10/26 18:42:57

$_GET[‘time’]が送信されました。値は[ 現在時刻は:2013/10/26 18:42:57 ]です。
クリア


$_GET(ゲット変数)で入力フォームアプリケーションを作成する

1 入力 phpsample-form-get.php

2 確認 phpsample-form-get2.php

3 完了 phpsample-form-get3.php

– サンプル Click Here ! –

1入力 phpsample-form-get.php

2確認 phpsample-form-get2.php

3完了 phpsample-form-get3.php

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

公開日:2011年10月20日
最終更新日:2021年05月18日

配列関数サンプル

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/phpref-get/trackback/

page top