我试图使用动态变量名称(我不确定它们实际上被称为什么),但大致如下:
for($i=0; $i<=2; $i++) {
$("file" . $i) = file($filelist[$i]);
}
var_dump($file0);
返回值为null,说明它不起作用。我不知道我在这里寻找的语法或技术是什么,这使得研究起来很困难。$filelist在前面定义。
我试图使用动态变量名称(我不确定它们实际上被称为什么),但大致如下:
for($i=0; $i<=2; $i++) {
$("file" . $i) = file($filelist[$i]);
}
var_dump($file0);
返回值为null,说明它不起作用。我不知道我在这里寻找的语法或技术是什么,这使得研究起来很困难。$filelist在前面定义。
当前回答
试着用{}代替():
${"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];
我经常这样做从查询返回的结果..
e.g.
// $MyQueryResult is an array of results from a query
foreach ($MyQueryResult as $key=>$value)
{
${$key}=$value;
}
现在我可以只使用$MyFieldname(这是更容易在echo语句等)而不是$MyQueryResult['MyFieldname']
是的,这可能是懒惰,但我从来没有遇到过任何问题。
试着用{}代替():
${"file".$i} = file($filelist[$i]);