PHP—使用变量作为$_GET['']语句的索引


PHP - Using a variable as the index for a $_GET[''] statement

我有一个数组anArray,我循环遍历它,像这样:

foreach ($anArray as $key) {
    echo $_GET[$key];
}

我得到很多错误,说:

未定义索引:$key

这是真的,但我不知道如何让我的PHP识别$key是一个变量,而不仅仅是一个字符串。

如果我打印出$_GET $key => $value对的列表和$anArray的列表,它们至少包含一些相同的值。

谁能告诉我我哪里错了?

多谢。

它已经将$key识别为var,您的语法是正确的,您可以通过以下方式消除错误:

先检查$_GET数组中是否有$key:

if array_key_exists($key, $_GET) {
    echo $_GET[$key];
}

错误告诉您,$anArray中的值在$_GET中不作为索引存在。

例如

http://someserver/somepage.php?var1=this&var2=that

将导致类似于

的$_GET:
array(
  'var1' => 'this',
  'var2' => 'that'
)

如果$anArray是这样的

array('var1','var2','var3');

对于var1var2,你的循环可以正常工作,但是当它到达var3时,它会发出undefined index错误。

如果你不知道$anArray中的所有元素是否都将存在于$_GET中,并且你只是希望抑制错误通知,通常的方法是将执行块包装在isset()中;包装:

foreach ($anArray as $key) {
  if (isset($_GET[$key])) {
    echo $_GET[$key];
  }
}

或者使用@HappyMary建议的array_key_exists()