PHP语法,它将使用变量名称数组在foreach循环中设置变量

时间:2012-11-08 01:07:28

标签: php variables loops foreach

我试图通过从同名的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="";}

1 个答案:

答案 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="";}
 }