php - 如何从php中的页面url获取所有变量
问题描述
我有一个这样的 php 代码
<?php
if(isset($_GET['qry'])) {
echo $_GET['qry'];
}else if(isset($_GET['ct'])) {
echo $_GET['ct'];
} else if(isset($_GET['sct'])) {
echo $_GET['sct'];
} else if(isset($_GET['brand'])) {
echo $_GET['brand'];
} else {
echo "";
} ?>
这里发生的是我想从 url 中的变量中获取值,但是它们在同一页面上有所不同。所以请有一种更简单的方法来做到这一点,方法是从变量中获取所有值并将其分配给我的代码中的一个变量,而无需在页面中输入所有变量,例如
例如
$allVariables = $_GET['get all variables'];
if($allVariables == '1'){
//do this
}
OR
if($allVariables == '2') {
// do this
}
请问有没有办法我可以做到这一点
解决方案
$_GET
是php中的超全局示例:
超全局变量是在所有范围内始终可用的内置变量。
特别$_GET
是:
通过 URL 参数(又名查询字符串)传递给当前脚本的变量关联数组。
您可以使用null 合并运算符一步来检查是否$_GET
设置了参数并将变量设置为等于其值:
$var = $_GET['some_parameter'] ?? null
在这种情况下,如果它存在则$var
等于 的值$_GET['some_parameter']
,否则为 null。
~~~~~编辑~~~~~
正如评论中所指出的,此运算符仅在 php 7.2.0 及更高版本中可用。要在版本 < 7.2 中实现相同功能,请使用三元运算符:
$var= isset($_GET['some_parameter']) ? $_GET['some_parameter'] : null;
~~~~~~~~~~~~~~~
在您检查的代码中if($allVariables == '1'){//do this}
,如果您实际上是在尝试检查通过 URL 传递的参数数量,您应该使用该count()
函数。
if (count($_GET) == 1) {
// do this
} else if (count($_GET) == 2) {
// do this instead
}
...但这将是有限的用途,因为它不会告诉您有关已传递哪些参数的任何信息。
推荐阅读
- sql - Oracle在组中的列中查找具有多个值的行
- java - JDK1.6 的 StreamingBodyResponse
- java - 如何识别组中的员工姓名和ID
- cuda - 检查 GPU 是否共享
- android - 在 Xamarin.Forms 应用程序中从隐式意图打开文件
- angular-oauth2-oidc - 如何从Angular-oauth2-oidc中的访问令牌中提取角色
- json - Kotlin http4k 读取响应为 JSONObject (org.json)
- java - 使用 HTTP 套接字的 Java 线程通信
- perl - 为什么即使在 EXPORT_FAIL 中指定了子程序,我们也可以访问它?
- angular - Angular - 离开浏览器时覆盖默认浏览器消息而不保存更改