0

嗨,我有以下内容:

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

我想做的是把它放在一个For循环中,如下所示:

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

我可以将变量添加到POST部件中没有问题,但我无法弄清楚如何1将 $q 旁边的下一个作为变量:

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

我敢肯定这很简单,但我无法理解!

4

6 回答 6

1

你是这个意思吗:

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

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

编辑:删除了 eval() 版本,你根本不应该使用它。数组一个应该可以正常工作:)

你可以使用可变变量,但你不应该。它很快变得非常复杂。

$name1 = 'myName'; 
$example = "name".$i;
echo $$example;
于 2013-07-25T10:24:20.857 回答
1

在此处检查 php 中可用的“变量变量”功能。您的代码将与此类似:

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

另外,查看提取功能

于 2013-07-25T10:24:54.180 回答
1
for ($i=1; $i<=3; $i++){
    ${"q$i"} = $_POST["q$i"];
}
echo $q1;

使用可变变量可以轻松分配 $q1

于 2013-07-25T10:28:42.750 回答
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 
于 2013-07-25T10:30:57.367 回答
0

将您的$q变量定义为数组有帮助吗?

$q[i] = $_POST["q".$i.""];
于 2013-07-25T10:25:12.737 回答
0

你的意思是你想动态创建变量名?像这样:

for ($i=1; $i<=3; $i++){
   $varname = "q" . $i;
   $$varname = $_POST["q".$i.""];
}
print $q2;
于 2013-07-25T10:27:03.400 回答