PHP NOOB,我整天都在写这段代码,但找不到任何好的方法来修复它。
下面是我的代码:$priv = explode(',', '0,1,1');
$m = 'me';
for($i = 0; $i <= 2; $i++)
{
if($priv[$i] == '0')
{
$m.$i = 20;
}
else
{
$m.$i = 10;
}
}
我试图将$m.$i
连接在一起并将其设置为20或10,但我最终拥有me20
或me10
而不是me1 = 20
或me1 = 10
,当我回声$m.$i
这是合法的,无论如何要使这个工作?
$m.$i = 20;
这将分配$i = 20
,然后将其与$m
连接,因此您将看到me20
。
你需要的是$m . $i .= 20;
代替。它将它们连接在一起。
<?php
$priv = explode(',', '0,1,1');
$m = 'me';
for($i = 0; $i <= 2; $i++)
{
if($priv[$i] == '0')
{
echo $m . $i .= 20;
}
else
{
echo $m.$i .= 10;
}
}
?>
编辑:上面的答案是一个完全的误解,我意识到你打算创建变量:
for($i = 0; $i <= 2; $i++)
{
if($priv[$i] == '0')
{
${$m.$i} = 20;
echo $me0;
}
else
{
${$m.$i} = 10;
}
}
像这样分配。
${$m.$i} = 20;
您正在尝试动态创建变量,因此您必须这样做:
$priv = explode(',', '0,1,1');
$m = 'me';
for($i = 0; $i <= 2; $i++)
{
if($priv[$i] == '0')
{
${$m.$i} = 20;
}
else
{
${$m.$i} = 10;
}
}
则尝试打印$me0, $me1