PHP 如何接收 GET 参数
在日常做网页开发时,我们经常会遇到“怎么把用户在浏览器里输入的信息传给网站后台”的问题。比如你在电商网站搜索“纯棉T恤”,搜索关键词就是通过一种叫GET参数的方式传递给后端的,而用PHP处理这类参数,是很多新手入门PHP开发时最先接触的实用技能。
什么是GET参数?先举个生活化的例子
平时你用手机导航找餐厅,打开地图后在搜索栏输入“附近的奶茶店”,地址栏会变成类似https://map.example.com/search?keyword=附近的奶茶店&type=饮品的样子。这里问号?后面的keyword=附近的奶茶店和type=饮品,就是GET参数——它是附在网页地址后面的“键值对”,用&分隔多个参数,每个键和值用=连接。

这种传递参数的方式,因为直接暴露在地址栏里,适合传非敏感信息,比如搜索关键词、商品分类这些,这也是它和POST参数最直观的区别。
PHP接收GET参数的核心工具:超全局变量
PHP里有一组叫“超全局变量”的特殊变量,是系统提前定义好的,不用自己创建,专门用来获取外部传来的数据。接收GET参数最常用的就是$_GET,它是一个“数组”,每个GET参数的键就是数组的下标,值就是数组元素。
举个最简单的例子:如果地址栏是https://你的网站地址.php?user=张三&age=25,那在PHP文件里,用$_GET['user']就能拿到“张三”,$_GET['age']就能拿到25。你可以把它想象成一个快递盒,GET参数是提前放好的包裹,$_GET就是装这些包裹的篮子,只要知道包裹的名字(键),就能直接拿出来。
实际使用要注意的2个细节
刚入门的人很容易犯两个小错误,提前留意就能少踩坑。
第一个是参数不存在的情况。如果地址里只带了user=张三,却用$_GET['age'],PHP会直接报错。所以实际开发时要先确认参数有没有传来,用isset()函数判断就好,比如if (isset($_GET['age'])) { $age = $_GET['age']; },这样没传参数时也不会出错。
第二个是特殊字符的处理。如果参数是带空格、中文或者特殊符号的内容,比如搜索“夏季新款T恤”,PHP默认会自动解码这些内容,不用自己转,但如果要把数据传给数据库,记得用mysqli_real_escape_string()这类函数过滤,避免数据库出错或者被注入攻击。
一个完整的小例子,帮你快速理解
假设你做了一个简单的页面,用来接收用户输入的昵称和城市:
首先,用户访问你的页面地址是你的页面.php?nick=小明&city=杭州;
然后在PHP文件里写这段代码:
`php
// 先判断两个参数都存在
if (isset($_GET['nick'], $_GET['city'])) {
$nick = $_GET['nick'];
$city = $_GET['city'];
// 输出内容
echo "你好,{$nick}!欢迎来自{$city}的朋友~";
} else {
echo "请在地址栏补充昵称和城市参数哦";
}
`
用户打开这个页面时,就能看到“你好,小明!欢迎来自杭州的朋友~”的提示,要是地址里漏了参数,就会提示补充,这就是PHP接收GET参数的实际效果。
掌握了这个基础的用法,就能处理很多日常的开发需求,比如做文章列表的分类筛选、用户简单信息的传递,都是从接收GET参数开始的。