PHP变量赋值时合并或连接字符串

3

我是一名PHP初学者,我已经花了一整天的时间在这个代码上,但是无法找到好的解决方案来修复它。

以下是我的代码:

$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,但最终我得到的是me20me10,而不是me1 = 20me1 = 10,当我输出合法的$m.$i时,有没有任何方法可以使这个工作?


1
当我回显 $k.$m 时,这是合法的。$k 在哪里? - DirtyBit
啊,没关系,我想你的意思是 me0 = 20? - DirtyBit
3个回答

5

$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;
    }
}

1
我想要 $m0 = 20 或 $m0 = 10。 - Ghostff
1
@ChrysUgwu 啊,糟糕...我刚刚意识到了。一分钟内修复它。 - DirtyBit

2

可以这样分配。

${$m.$i} = 20;

1

你正在尝试动态创建变量,因此你需要做这样的事情:

$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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接