Developer

【PHP基礎】定義済み変数② $_GET
2020.12.21
Lv1

【PHP基礎】定義済み変数② $_GET

PHPでは、GETリクエストやPOSTリクエストで送られたデータを、
連想配列として取り扱います(参考: 連想配列とは)。

GETリクエストで送られたデータは、$_GETという定数に格納されます。
フォーム欄のnameで指定した名前が、連想配列のキーとして使用されます。

$_GET

$_GETにはGETリクエストで送られたデータが、連想配列として格納されます。
例えば以下のサンプルを見てみましょう。

サンプルコード

Form_Get.htmlのname=num1となっている入力欄に入れたデータと、
name=num2となっている入力欄に入れたデータは、
PHP側では、$_GET[“num1”]、$_GET[“num2”]で、それぞれ取得します。

<html>
<header>
    <meta charset="UTF-8">
</header>
<body>
    <form method="GET" action="Sample36.php">
        num1:<input type="text" name="num1"><br>
        num2:<input type="text" name="num2"><br>
        <input type="submit">
    </form>
</body>
</html>
<?php    
    echo "num1 ⇒ ".$_GET["num1"]."<br>\n";
    echo "num2 ⇒ ".$_GET["num2"]."<br>\n";
?>

実行結果

num1に111、num2に222といれると、
遷移先のSample36.phpでその結果が表示されていますね。
Sample36.phpのURLをよく見ると、
Sample36.php?num1=111&num2=222と、URLの一部にGETパラメーターの値が設定されています。

$_GETの書き換え

連想配列である$_GETは、キー=値という形式で再代入可能です。

実際の取り扱い

実際には、$_GETをそのまま取得することは、現在のPHP開発の現場では行いません。
filter_inputを使って間接的に取得します。
また出力の際も、htmlspecialchars関数を使って、タグ文字をただの文字列として出力できるようにします。
(参考: htmlcpecialchars)。

<?php
// GETパラメータからnameという名前の値を取得
$raw_name = filter_input(INPUT_GET, "name");

//$nameをサニタイズ
$name = htmlspecialchars($raw_name);
// HTML上に出力
echo "名前は{$name}";
?>

PHP基礎 連載目次リンク

PHP基礎 連載目次