2012-06-26 285 views
1

我對PHP循環比較陌生,一直在學習它們,它們確實讓我的生活更輕鬆。然而,當試圖爲PHP循環創建一個新變量時,我遇到了一些困難。變量變量(?) - PHP循環

背景:

我宣佈21個變量,如:

$q1W = 5; 
$q2W = 10; 
$q3W = 2; 

然後我抓住了$_GETq1q2q3)變量,並把它們放到變量與他們的價值觀:

foreach($_GET as $qinput => $value) { 
    $$qinput = $value ; 
} 

現在,基本上,我想打開這段代碼:

$q1final = $q1 * $q1W; 
$q2final = $q2 * $q2W; 
$q3final = $q3 * $q3W; 

成一個圈,所以我並不需要輸入的是一路21這是我迄今:

<?php for ($i=1; $i<=21; $i++) { 
$q.$i.final = $q.$i * $q.$i.W 
} 

我缺少什麼?

+0

當以與正常(句點)相同的方式製作動態變量時,不能連接。另外,一般來說,如果你必須使用動態變量,你做錯了什麼。 –

+1

@AlexLunix你可以*連接字符串來創建動態變量名稱(請參閱我對下面答案的評論),但我同意如果「動態變量名稱」是正確的答案,那麼您可能會問錯誤的問題。 – DaveRandom

回答

5

我會推薦使用數組而不是大量的變量。它使您的數據更直接。例如:

$mults = array(
    'q1W' => 5, 
    'q2W' => 10, 
    'q3W' => 2 
); 
$final = array(); 
foreach ($_GET as $qinput => $value) { 
    $final[$qinput] = $mults[$qinput] * $value; 
} 
print_r($final); 
+2

這是正確答案(+1),但是爲了參考OP /未來訪問者,使用上述計數器來定義變量變量名稱的正確語法可以使用大括號中的字符串,例如, '$ {'q'。$ i.'final'} = $ {'q'。$ i} * $ {'q'。$ i.'W'};'' – DaveRandom