$_GET 是 PHP 的超全局變數之一,專門用於接收通過 HTTP GET 方法傳遞的數據。無論是 HTML 表單提交(method="get"),還是 URL 參數(如 page.php?id=123),$_GET 都能輕鬆捕獲。
當表單的 method 屬性設為 get 時,用戶輸入的數據會以鍵值對形式附加在 URL 後方,PHP 可直接透過 $_GET 陣列讀取。
<form action="get.php" method="get">
名稱: <input type="text" name="username" />
<input type="submit" value="送出" />
</form>
get.php 處理邏輯:
<?php
echo '您好,' . htmlspecialchars($_GET['username']) . '!';
?>
若用戶輸入「PHP 學習者」,瀏覽器網址列將顯示:
get.php?username=PHP+%E5%AD%B8%E7%BF%92%E8%80%85
輸出結果:您好,PHP 學習者!
無需表單,只要 URL 含查詢字串,$_GET 即可解析。例如連結 a.php?value=my,在 a.php 中:
<?php
echo 'value 的值是 ' . htmlspecialchars($_GET['value']);
?>
輸出:value 的值是 my
當多個同名輸入元素(如核取方塊)使用 name="fruit[] 時,PHP 會自動將其組成陣列。
<form action="checkbox.php" method="get">
<input type="checkbox" name="fruit[]" value="Apple"> 蘋果<br>
<input type="checkbox" name="fruit[]" value="Orange"> 橘子<br>
<input type="checkbox" name="fruit[]" value="Mango"> 芒果<br>
<input type="submit" value="送出">
</form>
<?php
if (isset($_GET['fruit'])) {
echo '共選擇 ' . count($_GET['fruit']) . ' 項:<br>';
foreach ($_GET['fruit'] as $val) {
echo htmlspecialchars($val) . '<br>';
}
}
?>
若勾選「橘子」與「芒果」,輸出:
共選擇 2 項:
Orange
Mango
htmlspecialchars() 轉義。$_GET 是 PHP 接收 GET 請求數據的標準入口,適用於搜尋、分頁、篩選等無副作用、可收藏、可分享的場景。善用陣列語法可輕鬆處理多值欄位,但務必注意長度限制與資安風險。