我有一个数组, anArray ,我循环使用,如下所示:
foreach ($anArray as $key) {
echo $_GET[$key];
}
我收到很多错误:
未定义的索引:$ key
这是真的,但我不知道如何让我的PHP识别$ key是一个变量,而不仅仅是一个字符串。
如果我打印出$ _GET $ key =>的列表$ value对和$ anArray列表,它们都包含至少一些相同的值。
谁能告诉我哪里出错?
非常感谢。
答案 0 :(得分:1)
它已经将$ key识别为var,您的语法是正确的,您可以通过这种方式消除错误:
首先检查$ _GET数组是否包含$ key:
if array_key_exists($key, $_GET) {
echo $_GET[$key];
}
答案 1 :(得分:0)
错误告诉您$ anArray中的值不是$ _GET中的索引。
例如,
http://someserver/somepage.php?var1=this&var2=that
会产生$ _GET,如:
array(
'var1' => 'this',
'var2' => 'that'
)
所以,如果$ anArray就像:
array('var1','var2','var3');
你的循环适用于 var1 和 var2 ,但当它到达 var3 时,它会发出 undefined index < / em>错误。
如果你不知道$ anArray中的所有元素是否都存在于$ _GET中,并且你只想抑制错误通知,通常的方法是将执行块包装在isset()中;包装器:
foreach ($anArray as $key) {
if (isset($_GET[$key])) {
echo $_GET[$key];
}
}
或者使用@HappyMary建议的array_key_exists()。