我试图使用动态变量名称(我不确定它们实际上被称为什么),但大致如下:

for($i=0; $i<=2; $i++) {
    $("file" . $i) = file($filelist[$i]);
}

var_dump($file0);

返回值为null,说明它不起作用。我不知道我在这里寻找的语法或技术是什么,这使得研究起来很困难。$filelist在前面定义。


当前回答

在尝试了上面提到的所有方法之后,它的工作方式很简单: 它作为$_POST变量访问,因为它直接来自动态表单。

$variableName= "field_".$id;
echo $_POST[$variableName];

其他回答

试着用{}代替():

${"file".$i} = file($filelist[$i]);

将它们包装在{}中:

${"file" . $i} = file($filelist[$i]);

工作示例


使用${}是一种创建动态变量的方法,简单的例子:

${'a' . 'b'} = 'hello there';
echo $ab; // hello there

试着用{}代替():

${"file".$i} = file($filelist[$i]);

在尝试了上面提到的所有方法之后,它的工作方式很简单: 它作为$_POST变量访问,因为它直接来自动态表单。

$variableName= "field_".$id;
echo $_POST[$variableName];

我有一个动态创建变量值的解决方案,并将所有值组合在一个变量中。

if($_SERVER['REQUEST_METHOD']=='POST'){
    $r=0;
    for($i=1; $i<=4; $i++){
        $a = $_POST['a'.$i];
        $r .= $a;
    }
    echo $r;
}