如何从php中的页面URL获取所有变量

问题描述 投票:-1回答:1

我有这样的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

}

请问有什么方法可以做到这一点

php url get
1个回答
1
投票

[$_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()

...但这用途有限,因为它不会告诉您有关已通过参数的[[哪个

参数。
© www.soinside.com 2019 - 2024. All rights reserved.