我正在尝试创建一个动态变量。我有一个循环,希望它循环遍历记录并为每个记录创建一个变量。我的代码:
$ct = 1;
foreach ($record as $rec){
$var.$ct = $rec['Name'];
$ct = $ct + 1;
}
echo $var1;
当我尝试使用上述代码时,它会报错,说
$var1
变量不存在/未定义?在PHP中是否可能创建像上面示例那样的动态变量。如果是,我做错了什么?您正在寻找变量变量。
将变量名作为字符串创建,然后进行赋值:
$ct = 1;
foreach( $record as $rec )
{
$name = 'var'.$ct;
$$name = $rec['Name'];
$ct++;
}
echo $var1;
不过,创建一个数组会更好:
$names = [ ];
foreach( $record as $rec )
{
$names[] = $rec['Name'];
}
echo $names[0];
{}
。$ct = 1;
foreach ($record as $rec){
${'var' . $ct++} = $rec['Name'];
}
echo $var1;
你可以用双$符号。
$var = "variable";
$$var = "test";
echo $variable;
//echoes "test"
$ct = 1;
foreach ($record as $rec){
$varname = "var" . $ct;
$$varname = $rec['Name'];
$ct = $ct + 1;
}
echo $var1;
请尝试这个,如果对你有用的话,请告诉我。 我使用一个前缀与动态变量。
$ct = 1;
$prefix = 'var';
foreach ($record as $key=>$rec){
$temp = $ct;
$ct = $prefix.$ct;
$$ct = $rec;
$ct = $temp + 1;
}
echo $var1;
你可以很容易地使用数组来实现这个。但是如果你真的想要它以动态变量的方式单独存在,那么我还是建议你用数组的方式来帮助你。这样,你就可以追踪你的变量。
在下面提到的方法中,你甚至不需要使用额外的变量像$ct。只需要一个数组$var,并在循环后应用extract方法即可达到目的。
$var = [];
foreach( $record as $k => $rec )
{
$var['var'.$k] = $rec['Name'];
}
extract($var);
echo $var0; //or $var_1 or $var_2
$var
是什么? - undefined