2012-06-26 294 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