2013-07-25 300 views
0

您好我有以下幾點:PHP變量中For循環

$q1 = $_POST["q2"]; 
$q2 = $_POST["q2"]; 
$q2 = $_POST["q2"]; 

我想什麼做的就是把這個For循環中,如下所示:

for ($i=1; $i<=3; $i++){ 
    $q1 = $_POST["q".$i.""]; 
} 

我可以添加變量的POST部分沒有問題,但我不能工作如何有旁$ q作爲變量的1

$q1 = $_POST["q".$i.""]; 

我確定它很簡單,但我無法理解它!

+0

這應該工作'$ _ POST' – 2013-07-25 10:22:34

回答

1

試試這個

$q_arr = array(); //create empty array 
for ($i=1; $i<=3; $i++){ 
    if(isset($_POST["q".$i])) //first check existance of $_POST item with wanted key 
    $q_arr['q'.$i] = $_POST["q".$i]; //store it in array 

} 
extract($q_arr); //extract creates variables naming them as their key 
if(isset($q1)) //just for test 
echo $q1; //just for test 
+0

完美 - 謝謝。 –

1

你的意思是這樣的:

// As array: 
$q[ $i ] = $_POST['q'.$i]; // this one is my prefered 

// Or as object: 
$q->$i = $_POST['q'.$i]; 

編輯:刪除的eval()版本,你根本不應該使用。陣列一應該工作得很好:)

你cán使用變量變量,但你不應該。它非常快速地變得非常複雜。

$name1 = 'myName'; 
$example = "name".$i; 
echo $$example; 
+0

[ 「Q」 $ I]這沒有用。 '$ A = 'A'; $ B = 'B'; echo $ a。$ b;'會用點連接到'ab'。我刪除了這個例子,這是不好的做法:) – Martijn

+0

邑,我得到了解釋:) –

1

檢查php here中提供的'變量變量'功能。 您的代碼將與此類似:

$varName = 'q' . $i; 
$$varName = $_POST[$varName] 

此外,檢查出的extract function

+2

這將工作,但它只是*感覺*錯誤這樣做,除非你被迫不使用數組出於某種原因。 +1爲有效的答案,但我不同意。 –

+1

我同意你的觀點,變量變量永遠不會安全 –

+0

謝謝,但希望避免使用變量如果poss。 –

0

將定義你$ Q變量作爲一個數組的幫助?

$q[i] = $_POST["q".$i.""]; 
0

你是說你想動態創建變量名? 這樣的:

for ($i=1; $i<=3; $i++){ 
    $varname = "q" . $i; 
    $$varname = $_POST["q".$i.""]; 
} 
print $q2; 
1
for ($i=1; $i<=3; $i++){ 
    ${"q$i"} = $_POST["q$i"]; 
} 
echo $q1; 

使用變量變量可以輕鬆地分配$ Q1