我有这样的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中superglobal的示例:
Superglobals是内置变量,在所有范围中始终可用。
尤其是$_GET
是:
通过URL参数(又称为查询字符串)传递给当前脚本的变量的关联数组。
您可以使用$_GET
一步检查$_GET
参数是否已设置并设置等于其值的变量。
null coalescing operator在这种情况下,
$var = $_GET['some_parameter'] ?? null
等于$var
的值,如果存在,则为null。
~~~~~编辑~~~~~
如评论中所指出,此运算符仅在PHP 7.2.0及更高版本中可用。要在<7.2版本中实现相同的效果,请使用$_GET['some_parameter']
:
ternary operator~~~~~~~~~~~~~~~ >>
在您检查$var= isset($_GET['some_parameter']) ? $_GET['some_parameter'] : null;
的代码中,如果您实际上是在尝试检查通过URL传递的参数数量,则应该使用if($allVariables == '1'){//do this}
函数。
count()
...但这用途有限,因为它不会告诉您有关已通过参数的[[哪个
参数。