PHP变量和会话问题

PHP变量和会话问题,php,session,variables,Php,Session,Variables,我正在努力完成这件事 $m1 = $_SESSION[m1]; ..... 使用以下for循环 for ($i = 1; $i < 9; $i++) { $m . $i = $_SESSION['m' . $i]; } ($i=1;$i

我正在努力完成这件事

$m1 = $_SESSION[m1];
.....
使用以下for循环

for ($i = 1; $i < 9; $i++) {
$m . $i = $_SESSION['m' . $i];
}
($i=1;$i<9;$i++)的
{
$m.$i=$\会话['m'.$i];
}
我做错了什么

谢谢。

试试看

for ($i = 1; $i < 9; $i++) {
    ${'m' . $i} = $_SESSION['m' . $i];
}
($i=1;$i<9;$i++)的
{
${m'.$i}=$\u会话['m'.$i];
}
$m$i
是两个变量(
$m
$i
)的值的集合,不能用作赋值变量


无论如何,为什么不使用数组?
您的
$m$i
无效:应改为使用:
${m'.$i}

基本上:

  • 首先,构造变量的名称:
    'm'$我
  • 并且,只有这样,您才能尝试访问具有以下名称的变量:
    ${'m'.$i}

您还可以使用以下语法:

$variableName = 'm' . $i;
$$variableName = 'your-value-here';


当然,还有PHP手册中的参考:.

部分
$m$问题出在我身上。正如其他答案所建议的那样,有一些方法可以做到这一点(
${m'.$i}
),但不建议这样做


你想如何使用这个?是否可以使用数组执行此操作?因此,
$m[$i]
为了获得
$m[1]
,等等。

此外,这有点脱离主题,养成写作的习惯

$\会话['m1']

而不是

$\会话[m1]


如果不这样做的话,有一天你可能会遇到一个奇怪的错误。

我得到了这个错误::使用未定义的常量m-假设“m”信息有引号,对不起。编辑解决方案遗漏了m的引号,海报已经修复了这一点。因此,我想知道使用此数组比使用前一个数组的好处。数组是指变量列表。例如,对于一个数组,您可以请求其长度,并且可以看到其中包含哪些元素,而使用此方法必须知道确切的名称并单独跟踪。此外,数组(或其他编程语言中的列表和字典)是传统的编程概念,几乎存在于任何语言中。此外,使用(关联)数组可以实现使用这些“变量”所能做的任何事情。谢谢,现在我正在尝试实现数组,您能在这里帮助我$\u SESSION['$m[$i]]=clean($\u POST[m[$i]);我在这里做错了什么?我希望这是$\u SESSION['$m[1]]=clean($\u POST[m[1]);是否希望在会话数组中使用数组?在循环之前,要声明数组
$\u session['m']=array();
并在循环中声明数组
$\u session['m'][$i]=clean($\u POST['m'.$i])
。因此,多维数组只是添加了另一对括号。应该注意,可能有一种更好的方法可以实现您的目标,而不使用此PHP功能。因此,使用。根据OP的具体需要,您可能是对的。您可能可以使用:$\u GLOBALS['m'.$i]=$\u SESSION['m'.$i];