繁体   English   中英

分配变量时,php合并或连接字符串

[英]php merging or concatenation strings when assigning a variable

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,但我最终me20me10代替me1 = 20me1 = 10时,我回声$m.$i这是合法的,是有反正使这项工作?

$m.$i = 20;

这将指定$i = 20 ,然后将它与$m连接,因此你会看到me20

你需要的是$m . $i .= 20; $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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM