2012-10-02 31 views
0

我使用下面的代碼在PHP中得到$_REQUEST數據請求參數:無法獲取在PHP

for($i=0;$i<intval($q);$i++) 
    { 
     $construct="'".$i."'"; 
     echo $construct; 
     $p=$_REQUEST[$construct]; 
     echo $p; 

    } 

,其中「0」,「1」,......等等都有價值。但由於某種原因,它不起作用。但是,如果我用$ _REQUEST ['0']替換它,它似乎打印罰款罰款。任何想法我做錯了什麼?

+0

你肯定有一個與名字'一個參數傳遞0'? – zerkms

+0

絕對確定。如果我說echo $ _REQUEST ['0'],它會打印這個值。 – user1667307

+0

*(相關)* [使用'$ _REQUEST'有什麼問題](http://stackoverflow.com/questions/2142497/whats-wrong-with-using-request) – Gordon

回答

1

你的$construct變量的值包含單引號,這是不必要的。當您將其寫爲'0'時,表示實際值爲0,而"'0'"表示值爲'0'。您的代碼應閱讀:

for($i=0;$i<intval($q);$i++) 
{ 
    $construct= strval($i); 
    echo $construct; 
    $p=$_REQUEST[$construct]; 
    echo $p; 
} 

或者更簡單地說:

for ($i=0; $i<intval($q); $i++) { 
    echo $_REQUEST[strval($i)]; 
} 
+0

好的。我現在明白了。謝謝您的幫助。 – user1667307

1

周圍$i刪除引號:

for($i=0;$i<intval($q);$i++) 
{ 
    $construct=$i; 
    echo $construct; 
    $p=$_REQUEST[$construct]; 
    echo $p; 

} 

這是因爲引號不是數組索引的一部分。

此外,如果你要調試,你可以寫出來的$_REQUEST -variable這樣的全部內容:

print "<pre>"; 
print_r($_REQUEST); 
print "</pre>"; 

編輯:

$a[$b]相同是否$b=0$b='0'$b="0",但$b="'0'"時不適用。

+0

是的。它現在有效! – user1667307

+1

@xdazz - 你是對的,但問題中的代碼實際上等於'$ _REQUEST [「0」]!= $ _REQUEST [「'0'」]或使用所有單引號'$ _REQUEST ['0 ']!= $ _REQUEST ['\'0'']' – doublesharp

+0

@xdazz我同意doublesharp這裏。在編輯下看到我添加的行。 – poplitea