我试图通过从同名的SESSION和POST变量设置变量来定义一组变量。 (即我想将$ _SESSION ['a']转移到$ a。
我正在尝试使用变量名称数组(a,b,c)来使用foreach循环来定义这样的集合,但是当我尝试定义它们时,我最终会在循环中使用类似$$变量的语法,这不起作用。我试过围绕$变量的单引号和双引号,但没有快乐
$data = array (
'a',
'b',
'c',
);
foreach($data as $variable)
{
if (isset($_POST['$variable'])) $_SESSION['$variable']=$_POST['$variable'];
if (isset($_SESSION['$variable'])) {$$variable=$_SESSION['$variable'];} else {$$variable="";}
}
非常感谢任何帮助。
我正在尝试最终的许多例子:
if (isset($_POST['$a'])) $_SESSION['$a']=$_POST['$a'];
if (isset($_SESSION['$a'])) {$a=$_SESSION['$a'];} else {$a="";}
答案 0 :(得分:1)
单引号阻止评估$ variable,只需将它们取出即可。
$data = array (
'a',
'b',
'c',
);
foreach($data as $variable)
{
if (isset($_POST[$variable])) $_SESSION[$variable]=$_POST[$variable];
if (isset($_SESSION[$variable])) {$$variable=$_SESSION[$variable];} else {$$variable="";}
}