我有一個數組的索引,anArray,通過我循環,像這樣:
foreach ($anArray as $key) {
echo $_GET[$key];
}
我得到許多錯誤說法:
未定義指數:$關鍵
這是事實,但我不知道如何讓我的PHP認識到$關鍵是一個變量,而不是隻是一個字符串。
如果我打印出$ _GET $ key => $ value對的列表和$ anArray的列表,它們都包含至少一些相同的值。
任何人都可以告訴我哪裏出錯了嗎?
非常感謝。
我有一個數組的索引,anArray,通過我循環,像這樣:
foreach ($anArray as $key) {
echo $_GET[$key];
}
我得到許多錯誤說法:
未定義指數:$關鍵
這是事實,但我不知道如何讓我的PHP認識到$關鍵是一個變量,而不是隻是一個字符串。
如果我打印出$ _GET $ key => $ value對的列表和$ anArray的列表,它們都包含至少一些相同的值。
任何人都可以告訴我哪裏出錯了嗎?
非常感謝。
它已經確實承認$鍵作爲一個變種,你的語法正確,你可以消除錯誤是這樣的:
檢查$ _GET數組的第一個這樣它$鍵:
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');
你的循環將工作的優良var1 and var2 ,但是當它到達var3它會發出未定義索引錯誤。如果您不知道$ anArray中的所有元素是否將存在於$ _GET中,並且您只是希望抑制錯誤通知,那麼通常的方法是將您的執行塊封裝在isset()中。包裝:
foreach ($anArray as $key) {
if (isset($_GET[$key])) {
echo $_GET[$key];
}
}
或者使用@HappyMary建議的array_key_exists()。
這應該是原樣。 '$ arr [$ var]'完全支持。 – deceze
我不想從數組中獲取值,當索引等於數組中的值時,我試圖從$ _GET查詢中獲取值。 –